home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1995 May / macformat-024.iso / Shareware City / Developers / gestalt-selectors-27 / gestalt-selectors-27.etx
Encoding:
Text File  |  1995-01-02  |  206.7 KB  |  4,929 lines  |  [TEXT/R*ch]

  1.  
  2. Gestalt Selectors List 2.7
  3. ==========================
  4. First published: 12 October 1992, 13:15 CET (GMT+1)
  5. Last modified  : 2 Januari 1995, 11:30 CET (GMT+1)
  6.  
  7. This document lists all selectors for use with the Gestalt Manager known to
  8. the editor. These can include selector codes installed by Apple (system)
  9. software or by software from third and so called "fourth" parties (your
  10. software?).
  11. The information in this list is useful for programmers and other people who
  12. can use the Gestalt Manager with their software perhaps even using
  13. externals (with HyperCard, 4th Dimension etc.).
  14.  
  15. This file can be best viewed with a mono-spaced font like Monaco. Because
  16. it is wrapped as setext you can use several utilities to index and read it.
  17. For the Macintosh you can use Easy View and on a UNIX system sv (setext
  18. viewer) works fine. Both are available by FTP from sumex-aim.stanford.edu
  19. (or its mirrors!), archived respectively as:
  20.      info-mac/text/easy-view-250.hqx
  21.      info-mac/text/setext-viewer-05-unix.uu
  22.  
  23. A single question mark indicates an uncertainty regarding the information
  24. in front of the question mark. Three question marks indicate complete
  25. absence of the information.
  26. See for more information about this list the chapters at the end.
  27.  
  28. Contents
  29. --------
  30.     Gestalt Selectors List
  31.       Contents
  32.       Contributions
  33.       Changes Overview
  34.     Gestalt Selector Codes
  35.       Apple System Software (A-F)
  36.       Apple System Software (G-L)
  37.       Apple System Software (M-Q)
  38.       Apple System Software (R-Z)
  39.       Apple Additional Software
  40.       Third Parties Software
  41.     Unknown Gestalt Selector Codes
  42.       Apple Software
  43.       Third Parties Software
  44.     Gestalt Manager Calls
  45.       Gestalt Manager Routines
  46.       Undocumented Gestalt Manager Routines
  47.       Gestalt Value Routines
  48.     Kilo-liners
  49.       Direct Gestalt Calls
  50.       Direct GestaltValue Calls
  51.       GestaltSelectorZero
  52.       GestaltBitTest
  53.       Call Gestalt Function Direct
  54.     Reports
  55.       AppleShare File & Print Server selector codes
  56.       AppleTalk
  57.       Copy protection using Gestalt
  58.       Environs & SysEnvirons
  59.       Executor Mac-emulator
  60.       Gestalt Apple Event
  61.       GestaltValue
  62.       Glue code
  63.       PPC Libraries
  64.       QuickTime
  65.       RAM Doubler
  66.     General Info
  67.       System Managers
  68.       Gestalt Problems
  69.       History
  70.       Abbreviations
  71.       Sources
  72.       Related Software
  73.       URL
  74.     Definitions and Format
  75.       Use in Language
  76.       Definitions
  77.       Format Selector Entry
  78.       Format Version Numbers
  79.     About this list
  80.       Availability
  81.       Acknowledgements
  82.       Legal Stuff
  83.       Editors' Address
  84.  
  85. Contributions
  86. -------------
  87. This section lists the people who contributed information which is now
  88. included with this version of the list.
  89.  
  90. ===========================================================================
  91. Contributions to the selector sections
  92. ===========================================================================
  93. Person                 Software                Selector(s) added/changed
  94. ---------------------------------------------------------------------------
  95. Anonymous(s)           ColorSync ext           cmtc
  96.                        FileSaver cp            PNfs
  97. Martin Bestmann        System (enablers)       evnt
  98. John Champion          A La Carte ext          AlaC
  99. Mike Cohen             System (enablers)       mach
  100. John Mancino           Remote Access           strm
  101. Mark Nagata            Dialog View cp          DlgV, LFnt
  102.                        KeyQuencer              KQae, KQue
  103. Marco Piovanelli       System (enablers)       os  
  104. Dave Radcliffe         System (enablers)       cput
  105. Rene G.A. Ros          Apple Guide/Reno        reno
  106.                        Apple Menu Options      HAM 
  107.                        AppleShare              afps
  108.                        At Ease app             pxtn
  109.                        CDMenu cp               CDmn
  110.                        ColorSync ext           cmtc
  111.                        Control Strip cp        sdev
  112.                        Debugger INIT ext       NubA, NubD, NubH, NubV
  113.                        GestaltValue glue code  gval
  114.                        Mount'em/Drop Disk app  ddsk, mtem
  115.                        Mouse cp                octb
  116.                        PC Exchange             vdrc
  117.                        PC Setup? cp            a pc
  118.                        PowerTalk Manager ext   oceu
  119.                        PPPReport cp            EDCN
  120.                        QuickTime ext           qtim
  121.                        Shared Library Manager ext
  122.                                                aslm
  123.                        SpeedyFinder7 Extension UhOh
  124.                        System ?                scrf, tpad, tv  
  125.                        System (enablers)       cput, idsp, fxfr, mach,
  126.                                                micn, proc, tele, tsma
  127.                        Video Player app/Video Startup ext
  128.                                                mtv2, tv  
  129.                        WorldScript II          lang, lngb
  130.                        unknown                 cuda, iic 
  131. Alex Rosenberg         HAM ???                 HAM
  132.                        System (enablers)       ctbv, fxfr, icon, tabl,
  133.                                                tele, nlup
  134. Marc Schrier           System (enablers)       mach
  135. Brian Stern            SpeakAlert cp           SPAL
  136. ---------------------------------------------------------------------------
  137.  
  138. ===========================================================================
  139. Contributions to the non-selector sections
  140. ===========================================================================
  141. Person                 Chapter/Section
  142. ---------------------------------------------------------------------------
  143. Lawrence D'Oliveiro    General Info/System Managers
  144. John Mancino           General Info/System Managers
  145. Marco Piovanelli       General Info/System Managers
  146. Rene G.A. Ros          About this list/Legal Stuff
  147.                        Definitions and Format/Symbolic Names Suffixes
  148.                        General Info/Gestalt Problems
  149.                        General Info/Related Software & URL
  150.                        General Info/System Managers
  151.                        Gestalt Manager Calls/Gestalt Value Routines
  152.                        Reports/Gestalt Apple Event
  153. Alex Rosenberg         Gestalt Manager Calls/Gestalt Value Routines
  154. ---------------------------------------------------------------------------
  155.  
  156. Changes Overview
  157. ----------------
  158. Added selectors
  159.   Apple System  : tele, tsma
  160.   Apple Add.    : -
  161.   Third Parties : PNfs
  162. Added unknown
  163.   Apple Softw.  : cuda, ddsk, iic , lngb, NubA, NubD, NubH, NubV, scrf
  164.   Third Parties : CDmn, EDCN, UhOh
  165. Changed selectors
  166.   Apple System  : cmtc, cput, ctbv, fxfr, gval, icon, mach, os  , proc,
  167.                   qtim, sdev, vers
  168.   Apple Add.    : cmtc, strm
  169.   Third Parties : -
  170. Changed unknown
  171.   Apple Softw.  : a pc, afps, aslm, HAM , idsp, lang, mtem, pxtn, vdrc
  172.   Third Parties : DlgV, KQae, KQue, LFnt
  173. Previously unknown
  174.   Apple System  : reno, tpad, tv  
  175.   Apple Add.    : mtv2
  176.   Third Parties : AlaC, SPAL
  177. Includes updates 2.6.1 up to and including 2.6.6, sent to subscribers of
  178. the mailing list.
  179.  
  180. A number of chapters are now sections, which should increase the usability
  181. of the GSL when using a setext viewer (like EasyView).
  182. Several changes where made to the layout and information because of
  183. comments and suggestions I received with a survey of the subscribers of
  184. the mailing list.
  185.  
  186. Several corrections were made to a number of entries regarding installed
  187. software versions, package names ('part of') and companies.
  188.  
  189. Prepared GSL for automatic extraction of declarations into a
  190. Gestalt header file:
  191. - added 'const' to all parts declaring symbolic names;
  192. - most source references are now part of the comments;
  193. - grouped all declarations together, ending with an empty line or a line
  194.   starting without leading spaces.
  195. It may take some time before I start writing an application/script to do
  196. the extraction. It should also be able to convert it to C. But I have to
  197. finish some other projects (incl. school) first!
  198.  
  199. The GestaltValueDispatch A-trap is implemented with System 7.5 final (not
  200. 'finally'!) and the following selectors are now installed using
  201. GestaltValue:
  202.     bugx, bugy, bugz, conn,
  203.     crm , ctbv, ditl, edtn,
  204.     fs  , fxfr, nlup, pop!,
  205.     stdf, tele, term, vers
  206.  
  207. Also, the Performa 61xx types are released and now in the appropriate part
  208. of the 'mach' entry.
  209.  
  210. Gestalt Selector Codes
  211. ======================
  212. The following sections list selector codes of which the meaning is know.
  213. For easier reading when using a setext viewer the 'Apple System Software'
  214. section has been divided into four groups grouped on the first character
  215. of the selectorcode (A-F, G-L, M-P and Q-Z).
  216.  
  217. Apple System Software (A-F)
  218. ---------------------------
  219. a/ux (A/UX [2.0?])
  220.      (System [6.0.4])
  221.      gestaltAUXVersion
  222.      Returns the version of A/UX, if it is executing, as BCD?
  223.  
  224.      const
  225.      gestaltAUXVersion = 'a/ux'; {A/UX version, if present}
  226.  
  227.      NOTES:
  228.      If Gestalt doesn't know the answer, test bit 9 of the HWCFgFlag
  229.      system global ($0B22; word). if it is, assume you have A/UX 1.0.
  230.  
  231.      This selector also indicates if you're running under MAE on an
  232.      UNIX machine. *AD08
  233. addr (System [6.0.4])
  234.      gestaltAddressingModeAttr
  235.      Returns information about the current addressing mode.
  236.  
  237.      const
  238.      gestaltAddressingModeAttr = 'addr'; {addressing mode attributes}
  239.      gestalt32BitAddressing    = 0;      {started up with 32-bit addr.}
  240.      gestalt32BitSysZone       = 1;      {system heap has 32-bit clean}
  241.                                          { block headers}
  242.      gestalt32BitCapable       = 2;      {machine is 32-bit capable}
  243. alis (System [7.0])
  244.      (Remote Access Aliases ext [1.0?], part of Apple Remote Access)
  245.      gestaltAliasMgrAttr
  246.      Returns information about the Alias Manager.
  247.  
  248.      const
  249.      gestaltAliasMgrAttr                    = 'alis';{Alias Mgr attributes}
  250.      gestaltAliasMgrPresent                 = 0;
  251.      gestaltAliasMgrSupportsRemoteAppletalk = 1;     {supports Remote}
  252.                                                      { Appletalk *AD02}
  253.      gestaltAliasMgr???                     = 2;     {since System 7.1 Pro}
  254.  
  255.      NOTE: See 'Reports' chapter (QuickTime section) for more information.
  256. ascr (AppleScript ext [1.0]) 
  257.      gestaltAppleScriptAttr *AS08
  258.      Returns information about AppleScript.
  259.  
  260.      const
  261.      gestaltAppleScriptAttr           = 'ascr'; {AppleScript attributes}
  262.      gestaltAppleScriptPresent        = 0;
  263.      gestaltAppleScriptPowerPCSupport = 1;
  264. ascv (AppleScript ext [1.0])
  265.      gestaltAppleScriptVersion *AS08
  266.      Returns the version of AppleScript as NumVersion.
  267.  
  268.      const
  269.      gestaltAppleScriptVersion = 'ascv'; {AppleScript version}
  270.      
  271.      NOTE:
  272.      AppleScript 1.1 returns $01100110 which doesn't look like a proper
  273.      version number (version 1.0 returned $01008000). (Rene Ros)
  274. atkv (System [7.0, AppleTalk 56])
  275.      gestaltATalkVersion *AT02
  276.      Returns AppleTalk version as NumVersion.
  277.  
  278.      This is different from 'atlk' !
  279.  
  280.      const
  281.      gestaltATalkVersion = 'atkv'; {AppleTalk version *AD01/M01}
  282.  
  283.      WARNING:
  284.      This selector returns the majorRev field of the NumVersion record as
  285.      hexadecimal instead of the usual BCD.
  286.  
  287.      NOTE: See 'Reports' chapter (AppleTalk section) for more information.
  288. atlk (System [6.0.4])
  289.      gestaltAppleTalkVersion
  290.      Returns the version of the .MPP driver as INTEGER.
  291.  
  292.      const
  293.      gestaltAppleTalkVersion = 'atlk'; {AppleTalk version}
  294. aucd (Audio CD Access ext [4.0], part of Apple CD-ROM Software) *AT03
  295.      gestaltAudioCDAccessVersion?
  296.      Returns Audio CD Access version as BCD.
  297.  
  298.      const
  299.      gestaltAudioCDAccessVersion? = 'aucd'; {Audio CD Access version}
  300.  
  301.      NOTE: The returned version is obtained from 'vers' resource ID# 1.
  302. BSDa (CloseView cp [???], by Berkeley Systems, Inc.)
  303.      gestaltCloseViewAttr
  304.      Returns information about the CloseView Control Panel.
  305.  
  306.      const
  307.      gestaltCloseViewAttr               = 'BSDa'; {CloseView attributes}
  308.      gestaltCloseViewEnabled            = 0;
  309.      gestaltCloseViewDisplayMgrFriendly = 1;      {Closeview compatible}
  310.                                                   { with Display Manager}
  311.                                                   { (FUTURE) *AS05}
  312. cash (System [???]) *S03
  313.      gestaltRAMCacheSize
  314.      Returns byte-size of physical RAM allocated to Disk Cache.
  315.      0 = Disk Cache Off
  316.  
  317.      const
  318.      gestaltRAMCacheSize = 'cash'; {RAM cache size}
  319.  
  320.      NOTE:
  321.      This selector is listed in THINK Reference 1.0 but it is unknown which
  322.      System Software version should install it.
  323. cfrg (System [7.1.2?])
  324.      gestaltCFMAttr
  325.      Returns information about the Code Fragment Manager machines.
  326.  
  327.      const
  328.      gestaltCFMAttr    = 'cfrg'; {Code Fragment Mgr attributes}
  329.      gestaltCFMPresent = 0;      {Code Fragment Manager is present}
  330.  
  331.      NOTE:
  332.      Don't rely on the presence of CFM along to check for a PowerMac. The
  333.      CFM will likely appear on 680x0 platforms as well. (Dave Falkenburg)
  334. cmta (ColorSync ext [1.0.4?]
  335.      gestaltColorMatchingAttr *AD09
  336.      Returns information about the ColorSync Utilities?
  337.  
  338.      const
  339.      gestaltColorMatchingAttr        = 'cmta'; {Color Matching Attributes}
  340.      gestaltHighLevelMatching        = 0;      {BeginMatching &}
  341.                                                { DrawMatchedPicture
  342.                                                { present}
  343.      gestaltColorMatchingLibLoaded   = 1;      {Native PowerPC shared}
  344.                                                { library is loaded. a.k.a.}
  345.                                                { gestaltSharedLibLoaded?}
  346. cmtc (ColorSync ext [1.0?])
  347.      gestaltColorMatchingVersion
  348.      Returns the version of the Color Matching software as BCD.
  349.  
  350.      const
  351.      gestaltColorMatchingVersion = 'cmtc'; {Color Matching version}
  352.      gestaltColorSync10          = $0100;  {*AD09}
  353.      gestaltColorSync11          = $0110;  {*AD09}
  354.      gestaltColorSync104         = $0104;  {*AD09}
  355.      gestaltColorSync105         = $0105;  {*AD09}
  356.      gestaltColorSync20?         = $0200;  {*AD17}
  357.  
  358.      NOTE:
  359.      ColorSync 1.0 returns gestaltColorSync10 for the version of the
  360.      utilities that work with System 6.0.7. And gestaltColorSync11 is
  361.      returned by the version that works with System 7.0 and later.
  362.      From version 1.0.4 up the correct version is returned. *AD17
  363. conn (System [7.0])
  364.      gestaltConnMgrAttr
  365.      Returns information about the Connection Manager.
  366.  
  367.      const
  368.      gestaltConnMgrAttr         = 'conn'; {Conn. Mgr attributes}
  369.      gestaltConnMgrPresent      = 0;      {Connection Mgr is present}
  370.      gestaltConnMgrCMSearchFix  = 1;      {fix for CMAddSearch present}
  371.      gestaltConnMgrErrorString  = 2;      {has CMGetErrorString *AS02}
  372.      gestaltConnMgrMultiAsyncIO = 3;      {CMNewsIOPB,CMDisposeIOPB,}
  373.                                           { CMPBRead,CMPBWrite,CMPBIOKill}
  374.                                           { *AS02}
  375.  
  376.      NOTE:
  377.      With System 6, this Gestalt selector isn't implemented when the
  378.      Communications Toolbox is installed. (Michael Hecht)
  379. cpkr (Color Picker ext [2.0?])
  380.      gestaltColorPickerMgrAttr
  381.      Returns information about the Color Picker Manager.
  382.  
  383.      const
  384.      gestaltColorPickerMgrAttr     = 'cpkr'; {ColorPicker Mgr attributes}
  385.      gestaltColorPickerMgrPresent? = 0?;     {ColorPicker Mgr Present}
  386.      (Marco Piovanelli, Lawrence D'Oliveiro)
  387.  
  388.      NOTE:
  389.      Extension version 2.0a4 returns a response ($0x0001) which is
  390.      according to the info above. Version 2.0a5 however returns $0x0100, is
  391.      this an error?
  392. cpnt (System [7.1])
  393.      (Color Picker Extension ext [2.0])
  394.      (Color Sync ext [1.0.4?])
  395.      (Macintosh Easy Open cp [1.0?])
  396.      (QuickTime ext [1.0])
  397.      (Speech Manager ext [1.1.1, not 1.2?])
  398.      gestaltComponentMgr
  399.      Returns Component Manager version as INTEGER.
  400.  
  401.      const
  402.      gestaltComponentMgr = 'cpnt'; {Component Mgr version *AS01}
  403. cput (System [7.1.2?]) *AS04/AS05
  404.      gestaltNativeCPUtype
  405.      Returns a value that indicates the type of native processor that is
  406.      currently running.
  407.  
  408.      const
  409.      gestaltNativeCPUtype = 'cput'; {Native CPU type}
  410.      {Motorola Architecture}
  411.      gestaltCPU68000 = 1;
  412.      gestaltCPU68010 = 2;
  413.      gestaltCPU68020 = 3;
  414.      gestaltCPU68030 = 4;
  415.      gestaltCPU68040 = 5;
  416.      {PowerPC Architecture}
  417.      gestaltCPU601   = $0x101;
  418.      gestaltCPU603   = $0x103;
  419.      gestaltCPU604   = $0x104;
  420.      gestaltCPU620?  = ???;
  421.  
  422.      NOTE:
  423.      To check whether the native system architecture is a MC680x0 or a
  424.      PowerPC use the gestaltSysArchitecture ('sysa') selector. See for
  425.      more information on the 68K processors the gestaltProcessorType
  426.      ('proc') selector.
  427.  
  428.      The GestaltEqu.h file published with E.T.O. #12 was replaced by the
  429.      one on E.T.O. #13. However there was made a mistake, it lists the 68K
  430.      values in the range 0-4 while it should be 1-5 as listed above.
  431.      This problem is acknowledged by Apple.
  432.      You can fix this problem by using the declarations listed above or by
  433.      using the GestaltEqu.h file from E.T.O. #13 but then test first the
  434.      gestaltSysArchitecture ('sysa') selector and when it reports a 68K
  435.      machine use gestaltProcessorType.
  436.      However, System 7.5. was apperantly created using the incorrect header
  437.      file and returns the incorrect values. Example: 'cput' returns 3
  438.      and 'proc' returns 4.
  439.      (Dave Radcliffe, Roland Mansson, Rene Ros)
  440. crm  (System [7.0])
  441.      (Communications Toolbox for System 6)
  442.      gestaltCRMAttr
  443.      Returns information about the Communications Resource Manager.
  444.  
  445.      const
  446.      gestaltCRMAttr          = 'crm '; {Comm. Resource Mgr attributes}
  447.      gestaltCRMPresent       = 0;      {Comm. Resource Mgr present}
  448.      gestaltCRMPersistentFix = 1;      {fix for persistent tools *AS02}
  449.      gestaltCRMToolRsrcCalls = 2;      {has CRMGetToolResource/}
  450.                                        { ReleaseToolResource *AS02}
  451. csvr (Control Strip cp [1.0], part of PowerBook Utilities)
  452.      gestaltControlStripVersion
  453.      Returns the version of Control Strip software that is installed as
  454.      NumVersion.
  455.  
  456.      const
  457.      gestaltControlStripVersion = 'csvr';
  458.  
  459.      WARNING:
  460.      Control Strip 1.0 used to install the 'sdvr' selector (which is used
  461.      by PowerTalk) instead of this selector to return the version. This is
  462.      corrected when the gestaltControlStripAttr ('sdev') selector has bit
  463.      gestaltControlStripVersionFixed set (unknown which version sets it).
  464.      No written documentation found, based on header file. *AS11 (Rene Ros)
  465.  
  466.      NOTE:
  467.      Control Strip displays a row with icons and popup menus to quickly
  468.      change settings on portable macs, i.e. AppleTalk and the sound volume.
  469. ctbm (System [7.0])
  470.      (Communications Toolbox for System 6)
  471.      gestaltCTBManagersAttr
  472.      Returns information about the Communications Toolbox Managers, it is a
  473.      bitmask of which managers are present.
  474.  
  475.      const
  476.      gestaltCTBManagersAttr = 'ctbm'; {Comm. Mgrs attributes *S02}
  477. ctbu (System [7.0])
  478.      (Communications Toolbox for System 6)
  479.      gestaltCTBUtilsAttr
  480.      Returns information about the Communications Toolbox Utilities.
  481.  
  482.      const
  483.      gestaltCTBUtilsAttr    = 'ctbu'; {Comm. TB Utils attributes *S02}
  484.      gestaltCTBUtilsPresent = 0;      {*S02}
  485. ctbv (System [7.0])
  486.      (Communications Toolbox for System 6)
  487.      gestaltCTBVersion
  488.      Returns the version number of the Communications Toolbox.
  489.  
  490.      const
  491.      gestaltCTBVersion = 'ctbv'; {Comm. Toolbox version}
  492.  
  493.      NOTE:
  494.      With the Power Macintosh the Communication Toolbox returned a Gestalt
  495.      value indicating version 1.1 while the ROM actually had version 1.0.
  496.      This is fixed by the PowerPC Enabler 1.0.1. and the PowerPC Upgrade
  497.      Card Enabler 1.0.1. because they install CTB 1.1. *AT06
  498.      As of System 7.1, the version of the CTB should track the System
  499.      version. The PowerMac ROMs handled this incorrectly and System 7.5
  500.      rectifies this by reporting 7.5.0. (Alex Rosenberg)
  501. dbac (System [7.0])
  502.      gestaltDBAccessMgrAttr
  503.      Returns information about the Data Access Manager.
  504.  
  505.      const
  506.      gestaltDBAccessMgrAttr    = 'dbac'; {Data Access Mgr attributes}
  507.      gestaltDBAccessMgrPresent = 0;      {TRUE if Data Access Mgr present}
  508. dfnd (PowerTalk ext [1.0?], part of PowerTalk)
  509.      gestaltSDPFindVersion
  510.      Returns the SDP Find version as INTEGER.
  511.  
  512.      const
  513.      gestaltSDPFindVersion = 'dfnd'; {SDP Find version}
  514. dict (System [7.1])
  515.      gestaltDictionaryMgrAttr
  516.      Returns information about the Dictionary Manager.
  517.  
  518.      const
  519.      gestaltDictionaryMgrAttr    = 'dict'; {Dictionary Mgr attributes}
  520.      gestaltDictionaryMgrPresent = 0;
  521. ditl (System [7.0])
  522.      gestaltDITLExtAttr
  523.      Returns information about the Dialog Manager.
  524.  
  525.      const
  526.      gestaltDITLExtAttr    = 'ditl'; {Dialog Mgr attributes}
  527.      gestaltDITLExtPresent = 0;      {Dialog Mgr extensions present}
  528. dplv (Display Enabler [1.0?])
  529.      (System [7.1.1])
  530.      gestaltDisplayMgrVers *AS05
  531.      Returns Display Manager version as INTEGER?.
  532.  
  533.      const
  534.      gestaltDisplayMgrVers = 'dplv'; {Display Mgr version}
  535. dply (Display Enabler [1.0?])
  536.      (System [7.1.1])
  537.      gestaltDisplayMgrAttr *AS05
  538.      Returns information about the Display Manager.
  539.  
  540.      const
  541.      gestaltDisplayMgrAttr = 'dply'; {Display Mgr attributes}
  542.      gestaltDisplayMgrPresent = 0;   {True if Display Mgr is present}
  543.      gestaltDisplayMgr???     = 1;
  544.      gestaltDisplayMgr???     = 2;
  545. drag (Macintosh Drag and Drop ext [1.0])
  546.      gestaltDragMgrAttr *AD05
  547.      Returns information about the Drag Manager.
  548.  
  549.      const
  550.      gestaltDragMgrAttr         = 'drag'; {Drag Manager attributes}
  551.      gestaltDragMgrPresent      =  0;     {Drag Manager is present}
  552.      gestaltDragMgrFloatingWind =  1;     {*AS09}
  553.      gestaltPPCDragLibPresent   =  2;     {*AS09}
  554.      gestaltDragMgr???          = 31;     {set with System 7.5}
  555. dsig (PowerTalk ext [1.0?], part of PowerTalk)
  556.      gestaltDigitalSignatureVersion
  557.      Returns version of the Digital Signature toolbox as BCD.
  558.  
  559.      const
  560.      gestaltDigitalSignatureVersion = 'dsig'; {Digitial Signature version}
  561. eajt (Easy Access cp [7.0])
  562.      gestaltEasyAccessJTable
  563.      Returns the base address of the Easy Access jump-trap table.
  564.  
  565.      const
  566.      gestaltEasyAccessJTable = 'eajt'; {Easy Access jump-trap table *M01}
  567. easy (Easy Access cp [6.0.4?])
  568.      gestaltEasyAccessAttr
  569.      Returns information about the status of Easy Access.
  570.  
  571.      const
  572.      gestaltEasyAccessAttr   = 'easy'; {Easy Access attributes}
  573.      gestaltEasyAccessOff    = 0;      {Easy Access present but off}
  574.      gestaltEasyAccessOn     = 1;      {Easy Access on}
  575.      gestaltEasyAccessSticky = 2;      {Easy Access "Sticky"}
  576.      gestaltEasyAccessLocked = 3;      {Easy Access "Locked"}
  577.  
  578.      NOTE:
  579.      The values listed above are not returned with System 7 and later.
  580.      Because of a bug different values are returned. This problem is
  581.      acknowledged by Apple, but it is unclear when it will be fixed. They
  582.      know about it since September 1992... (Rene Ros)
  583. edtn (System [7.0])
  584.      (Macintosh Easy Open cp [1.0?])
  585.      gestaltEditionMgrAttr
  586.      Returns information about the Edition Manager.
  587.  
  588.      const
  589.      gestaltEditionMgrAttr             = 'edtn'; {Edition Mgr attributes}
  590.      gestaltEditionMgrPresent          = 0;
  591.      gestaltEditionMgrTranslationAware = 1;      {*AD03}
  592. evnt (System [7.0]) *AS05
  593.      (Apple Event Manager ext [1.0.1], part of AppleScript Setup)
  594.      gestaltAppleEventsAttr
  595.      Returns information about Apple Events.
  596.  
  597.      const
  598.      gestaltAppleEventsAttr     = 'evnt'; {Apple events attributes}
  599.      gestaltAppleEventsPresent  = 0;      {True if Apple Events present}
  600.                                           { *AS05}
  601.      gestaltScriptingSupport    = 1;
  602.      gestaltOSLInSystem         = 2;      {OSL is in system so don`t use}
  603.                                           { the one linked}
  604.  
  605.      NOTE:
  606.      These declarations in the AEObjects.h file (on ETO 14) should be
  607.      ignored:
  608.      gestaltObjectSupportLibraryInSystem = 1,
  609.      gestaltObjectSupportLibraryPowerPCSupport = 2
  610. flag (Network Extension ext [System 7.0 *AT02])
  611.      gestaltFlagshipAttr
  612.      Returns information about the Flagship.
  613.  
  614.      const
  615.      gestaltFlagshipAttr       = 'flag'; {*M01}
  616.      gestaltFlagshipPresent    = 0;      {*M01}
  617.      gestaltFlagshipRegistered = 1;      {*M01}
  618. fndr (Finder [7.1.1]) *AS04
  619.      gestaltFinderAttr
  620.      Returns information about the Finder.
  621.  
  622.      const
  623.      gestaltFinderAttr               = 'fndr';
  624.      gestaltFinderDropEvent          = 0;
  625.      gestaltFinderMagicPlacement     = 1;
  626.      gestaltFinderCallsAEProcess     = 2;
  627.      gestaltOSLCompliantFinder       = 3;      {supports Finder Event Suite}
  628.      gestaltFinderSupports4GBVolumes = 4;
  629.      gestaltFinderHandlesCFMFailures = 5;
  630.      gestaltFinderHasClippings       = 6;      {*AD12}
  631. fold (System [7.0])
  632.      gestaltFindFolderAttr
  633.      Returns information about the FindFolder function.
  634.  
  635.      const
  636.      gestaltFindFolderAttr    = 'fold'; {FindFolder attributes}
  637.      gestaltFindFolderPresent = 0;      {FindFolder function available}
  638. font (System [7.0])
  639.      (TrueType INIT ext for System 6)
  640.      gestaltFontMgrAttr
  641.      Returns information about the Font Manager.
  642.  
  643.      const
  644.      gestaltFontMgrAttr      = 'font'; {Font Mgr attributes}
  645.      gestaltOutlineFonts     = 0;
  646.      gestaltFontMgr???       = 1;      {set with System 7.1 & 7.5}
  647.      gestaltDiskCachedFonts? = 2;      {Disk Cached Fonts available?}
  648.  
  649.      NOTE:
  650.      Inside the Inline Extension 1.0 with KanjiTalk7, which was compiled
  651.      with full subroutine names, there is a subroutine called
  652.      'DiskChachedFontsAvailable' in an INIT resource which checks bit 2
  653.      of the gestaltFontMgrAttr selector response. (Marco Piovanelli)
  654. fpu  (System [6.0.4])
  655.      gestaltFPUType
  656.      Returns a value that indicates the FPU-type, if any.
  657.  
  658.      const
  659.      gestaltFPUType  = 'fpu '; {FPU Type}
  660.      gestaltNoFPU    = 0;      {no FPU}
  661.      gestalt68881    = 1;      {68881 FPU}
  662.      gestalt68882    = 2;      {68882 FPU}
  663.      gestalt68040FPU = 3;      {built-in 68040 FPU *S01}
  664.  
  665.      NOTE: See also the 'FPUE' entry with the Third Parties section.
  666. fs   (720K Floppy Disk Formatter ext [1.0a3?],
  667.       part of the Hardware System Update [2.0])
  668.      (Apple Share ext [AS 3.0/SYS 7.0])
  669.      (File System Manager ext [1.2])
  670.      (System [7.0])
  671.      gestaltFSAttr
  672.      Returns information about the file system.
  673.  
  674.      const
  675.      gestaltFSAttr               = 'fs  '; {file-system attributes}
  676.      gestaltFullExtFSDispatching = 0;      {exports HFSDispatch traps}
  677.      gestaltHasFSSpecCalls       = 1;      {supports FSSpec records}
  678.      gestaltHasFileSystemManager = 2;      {has the File System Manager}
  679.                                            { *S01}
  680.      gestaltFSMDoesDynamicLoad   = 3;      {FSM supports dynamic loads}
  681.                                            { *AD12}
  682.      gestaltFSSupports4GBVols    = 4;      {FS supports 4 gigabyte volumes}
  683.                                            { *AD14}
  684.      gestaltFSSupports2TBVols    = 5;      {FS supports 2 terabyte volumes}
  685.                                            { *AD14}
  686.      gestaltHasExtendedDiskInit  = 6;      {has extended Disk}
  687.                                            { Initialization calls *AD12}
  688.  
  689.      NOTES:
  690.      See 'Reports' chapter (QuickTime section) for more information.
  691. fxfr (System [7.0])
  692.      gestaltFXfrMgrAttr
  693.      Returns information about the File Transfer Manager.
  694.  
  695.      const
  696.      gestaltFXfrMgrAttr        = 'fxfr'; {File Transfer Mgr attributes}
  697.      gestaltFXfrMgrPresent     = 0;      {File Transfer Mgr present}
  698.      gestaltFXfrMgrMultiFile   = 1;      {supports FTSend and FTReceive}
  699.                                          { *AS02}
  700.      gestaltFXfrMgrErrorString = 2;      {supports FTGetErrorString}
  701.                                          { *AS02/S02}
  702.      gestaltFXfrMgr???         = 3?;     {new, see future technote}
  703.                                          { set with System 7.5}
  704.  
  705. Apple System Software (G-L)
  706. ---------------------------
  707. gval (GestaltValue glue code)
  708.      gestaltValueTable?
  709.      Returns a pointer to a table with the selectors and values managed
  710.      by the GestaltValue code. (Marco Piovanelli)
  711.  
  712.      const
  713.      gestaltValueTable? = 'gval';
  714.  
  715.      WARNING:
  716.      Although this information isn't officially confirmed, it is probably
  717.      correct.
  718.  
  719.      NOTES:
  720.      Although System 7.5 implements the GestaltValue functions it does not
  721.      install this selector. Only with system software before 7.5 it is
  722.      installed by the glue code. (Rene Ros)
  723.  
  724.      See 'Reports' chapter (GestaltValue section) for more information.
  725. hdwr (System [6.0.4]) INF
  726.      gestaltHardwareAttr
  727.      Returns information about the hardware configuration of the machine.
  728.  
  729.      const
  730.      gestaltHardwareAttr    = 'hdwr'; {hardware attributes}
  731.      gestaltHasVIA1         =  0;     {VIA 1}
  732.      gestaltHasVIA2         =  1;     {VIA 2}
  733.      gestaltHasRBV          =  2;     {RBV *M01}
  734.      gestaltHasASC          =  3;     {ASC}
  735.      gestaltHasSCC          =  4;     {SCC *M01}
  736.      gestaltHasOSS          =  5;     {OSS *M01}
  737.      gestaltHasSCSIDMA      =  6;     {53C80 SCSI DMA *M01}
  738.      gestaltHasSCSI         =  7;     {SCSI}
  739.      gestaltHasSWIMIOP      =  8;     {SWIM IOP *M01}
  740.      gestaltHasSCCIOP       =  9;     {SCC IOP *M01}
  741.      gestaltHasFitch        = 10;     {Fitch memory Controller *M02}
  742.      gestaltHasIWM          = 11;     {IWM *M01}
  743.      gestaltHasPWM          = 12;     {PWM disk speed buffer *M02}
  744.      gestaltHasRAMSndBuff   = 13;     {RAM-based sound buffer *M02}
  745.      gestaltHasVideoDAConv  = 14;     {Video D/A Converter *M02}
  746.      gestaltHasPGC          = 15;     {PGC (parity control) *M02}
  747.      gestaltHasRPU?         = 16;     {Random Parity Unit}
  748.      gestaltHasOMC?         = 17;     {Orwell Memory Controller}
  749.      gestaltHasVISARBV?     = 18;     {VISA Ram Based Video}
  750.      gestaltHasSoftPowerOff = 19;     {Software PowerOff (since 7.0?) *S01}
  751.      gestaltHasSonic        = 20;     {Sonic (built-in ethernet) *M01}
  752.      gestaltHasSCSI961      = 21;     {Int. 53C96 SCSI *AT01}
  753.      gestaltHasSCSI962      = 22;     {Ext. 53C96 SCSI *AT01}
  754.      gestaltHasDAFBVideo    = 23;     {DAFB Video *M01}
  755.      gestaltHasUniversalROM = 24;     {Universal ROM *AT04}
  756.      gestaltHas???          = 27;     {set on PowerMac and C660AV}
  757.      gestaltHasDSP?         = 30;     {set on C660AV, DSP?}
  758.      gestaltHasDSP?         = ??;     {Digital Signal Processor}
  759.      gestaltHasEASC?        = ??;     {Enhanced Apple Sound Chip}
  760.      gestaltHasFWSCSI?      = ??;     {Fast and Wide SCSI}
  761.      gestaltHasGraphic?     = ??;     {Apple Graphics coprocessor}
  762.      gestaltHasJaws?        = ??;     {JMC}
  763.      gestaltHasSCSI2?       = ??;     {SCSI 2}
  764.  
  765.      NOTES:
  766.      See for additional information the TN "M.OV.GestaltSysenvirons" (OV 16).
  767.  
  768.      On the Mac IIfx and Quadra 900 the gestaltHasSCC bit always returns 0
  769.      because the SCC is isolated by I/O processors. When the Compatibility
  770.      Switch control panel is used the bit is set. *AD12
  771.  
  772.      The old IM VI listed this selector as an environmental selector but
  773.      IM OS Utilities now lists it as an informational selector.
  774. help (System [7.0])
  775.      gestaltHelpMgrAttr
  776.      Returns information about the Help Manager.
  777.  
  778.      const
  779.      gestaltHelpMgrAttr       = 'help'; {Help Mgr attributes}
  780.      gestaltHelpMgrPresent    =  0;     {Help Mgr present}
  781.      gestaltHelpMgrExtensions =  1;     {Help Mgr extensions installed}
  782.                                         { *AS03}
  783.      gestaltAppleGuideIsDebug = 30;     {Apple Guide is debugging version}
  784.                                         { *AS12}
  785.      gestaltAppleGuidePresent = 31;     {Apple Guide is available *AS12}
  786. hscd (High Sierra File Access ext [5.0], part of Apple CD-ROM Software and
  787.       System 7.5) 
  788.      (ISO 9660 File Access ext [1.0-4.0], part of Apple CD-ROM Software)
  789.      gestaltHighSierraFAVersion? *AT03
  790.      Returns High Sierra File Access version in BCD.
  791.  
  792.      const
  793.      gestaltHighSierraFAVersion? = 'hscd'; {High Sierra Fileaccess version}
  794.  
  795.      NOTE: The returned version is obtained from 'vers' resource ID# 1.
  796. icmp (QuickTime ext [1.0])
  797.      gestaltCompressionMgr
  798.      Returns Compression Manager version as Integer.
  799.  
  800.      const
  801.      gestaltCompressionMgr = 'icmp'; {determines if Image Compression}
  802.                                      { manager is available *AS01}
  803. icon (System [7.1.2])
  804.      gestaltIconUtilities
  805.      Returns information about the Icon Utilities routines.
  806.  
  807.      const
  808.      gestaltIconUtilities        = 'icon'; {Icon Utils attributes}
  809.      gestaltIconUtilitiesPresent = 0;
  810.  
  811.      NOTE:
  812.      This selector is supposed to be implemented since System 7.1.2. You
  813.      need to determine if the _IconDispatch A-trap ($AB49) is available
  814.      instead since the Icon Utilities are actually available since
  815.      System 7.0. *AD13/AT01
  816. intd (Powerbook Duo Enabler [1.0])
  817.      (System [7.5])
  818.      (System Enabler 111 [1.0])
  819.      (System Enabler 121 [1.0])
  820.      (System Enabler 131 [1.0])
  821.      (System Enabler 201 [1.0])
  822.      gestaltInternalDiskAttr?
  823.      Returns information about the internal harddisk of portable
  824.      computers?
  825.  
  826.      const
  827.      gestaltInternalDiskAttr? = 'intd'; {PB Internal HD attributes}
  828.      gestaltHasInternalDisk?  =  0;     {TRUE if machine has internal HD}
  829.      gestaltDiskSpinning?     =  1;     {TRUE if internal HD is spon up}
  830.      gestalt???               = 24;     {unknown, set on PB180, PB210,}
  831.                                         { PB540}
  832.  
  833.      WARNING:
  834.      This information is from a reliable source. However, is it not
  835.      officially confirmed by Apple and there are no constants defined.
  836.  
  837.      NOTE:
  838.      On a PB Duo 210 (PowerBook Duo Enabler) I haven't seen bit 1 set, even
  839.      when the disk is spinning. It is also reported the bit is clear when
  840.      the disk is spinning and set when down (seen on PB Duo 230).
  841.      (David Lewis, Rene Ros)
  842. iscd (ISO 9660 File Access ext [5.0], part of Apple CD-ROM Software and
  843.       System 7.5)
  844.      gestaltISO9660FAVersion?
  845.      Returns ISO 9660 File Access version in BCD?.
  846.  
  847.      const
  848.      gestaltISO9660FAVersion? = 'iscd';
  849.  
  850.      NOTE:
  851.      Versions before 5.0 installed the 'hscd' selector.
  852. kbd  (System [6.0.4])
  853.      gestaltKeyboardType
  854.      Returns a value that indicates the type of keyboard on which the last
  855.      keystroke was seen.
  856.  
  857.      const
  858.      gestaltKeyboardType      = 'kbd '; {keyboard type}
  859.      gestaltMacKbd            =  1;     {Macintosh Keyboard}
  860.      gestaltMacAndPad         =  2;     {Macintosh Keyboard with Pad}
  861.      gestaltMacPlusKbd        =  3;     {Macintosh Plus Keyboard}
  862.      gestaltExtADBKbd         =  4;     {Extended ADB Keyboard}
  863.      gestaltStdADBKbd         =  5;     {Standard ADB Keyboard}
  864.      gestaltPrtblADBKbd       =  6;     {Portable ADB Keyboard}
  865.      gestaltPrtblISOKbd       =  7;     {Portable ISO ADB Keyboard}
  866.      gestaltStdISOADBKbd      =  8;     {Standard ISO ADB Keyboard}
  867.      gestaltExtISOADBKbd      =  9;     {Extended ISO ADB Keyboard}
  868.      gestaltADBKbdII          = 10;     {ADB Keyboard II}
  869.      gestaltADBISOKbdII       = 11;     {ISO ADB Keyboard II}
  870.      gestaltPwrBookADBKbd     = 12;     {PowerBook Keyboard *AT01}
  871.      gestaltPwrBookISOADBKbd  = 13;     {PowerBook Keyboard (ISO) *AT01}
  872.      gestaltAppleAdjustKeypad = 14;     {Apple Adjustable Keypad *AT01}
  873.      gestaltAppleAdjustADBKbd = 15;     {Apple Adjustable Keyboard}
  874.                                         { incl. US, ISO and Japanese *AT01}
  875.      gestaltUnknownKbd1???    = ??;     {new AppleDesign extended kbd.}
  876.      gestaltUnknownKbd2???    = 24;     {reported to be returned on}
  877.                                         { PB 5xx other report says these}
  878.                                         { return 11}
  879.  
  880.      ======================================================================
  881.      Combinations of System Global KbdType/ADB Mgr devType and
  882.      gestaltKeyboardType values                                       *AT01
  883.      ======================================================================
  884.      KbdType    gestaltKeyboardType     Gestalt Name
  885.      (hex.)     (decimal)
  886.      ----------------------------------------------------------------------
  887.        $03          1                   gestaltMacKbd
  888.        $13          2                   gestaltMacAndPad
  889.        $0B          3                   gestaltMacPlusKbd
  890.        $02          4                   gestaltExtADBKbd
  891.        $01          5                   gestaltStdADBKbd
  892.        $06          6                   gestaltPrtblADBKbd
  893.        $07          7                   gestaltPrtblISOKbd
  894.        $04          8                   gestaltStdISOADBKbd
  895.        $05          9                   gestaltExtISOADBKbd
  896.        $08         10                   gestaltADBKbdII
  897.        $09         11                   gestaltADBISOKbdII
  898.        $0C         12                   gestaltPwrBookADBKbd
  899.        $0D         13                   gestaltPwrBookISOADBKbd
  900.        $0E         14                   gestaltAppleAdjustKeypad
  901.        $10         15                   gestaltAppleAdjustADBKbd, US
  902.        $11         15                   gestaltAppleAdjustADBKbd, ISO
  903.        $12         15                   gestaltAppleAdjustADBKbd, Japanese
  904.      ----------------------------------------------------------------------
  905.  
  906.      NOTES:
  907.      The Apple Adjustable Keyboard doesn't has its own Gestalt keyboard
  908.      type defined with the some versions of System Software (7.1?). It
  909.      changes a low memory global but this doesn't change the Gestalt
  910.      response. This problem is corrected by the Hardware System Update 2.0
  911.      or later.
  912.  
  913.      The PowerMac 7100/66 doesn't install this selector for some reason.
  914.      Other Macs with Gestalt version 4 do, so it isn't intentional.
  915.  
  916.      Since this selector returns the type of the keyboard last touched
  917.      and because there can be more than one keyboard, MacDTS considers this
  918.      selector to be obsolete. You should use GetADBInfo instead and check
  919.      the orgADBAddr field for a keyboard (0x02) and the devType field
  920.      contains the keyboard device type. It uses the same values as the
  921.      KbdType low memory variable, see the table above. *AD07/AT01
  922. kpcd (Apple Photo Access ext [1.0], part of Apple CD-ROM Software) *AT03
  923.      gestaltApplePhotoAccessVersion?
  924.      Returns Apple Phote Access version in BCD.
  925.  
  926.      const
  927.      gestaltApplePhotoAccessVersion? = 'kpcd';
  928.  
  929.      NOTE:
  930.      The above is what the documentation says. However it seems to return
  931.      always $FFFFFF7 as response.
  932. lram (System [6.0.4])
  933.      (RAM Doubler [1.0] by Connectix Corporation)
  934.      gestaltLogicalRAMSize
  935.      Returns the amount of logical memory available in bytes.
  936.  
  937.      const
  938.      gestaltLogicalRAMSize = 'lram'; {logical RAM size}
  939. lmem (System [6.0.4])
  940.      gestaltLowMemorySize
  941.      Returns the amount of the low-memory area in bytes.
  942.  
  943.      const
  944.      gestaltLowMemorySize = 'lmem'; {low-memory area size}
  945.  
  946. Apple System Software (M-P)
  947. ---------------------------
  948. mach (System [6.0.4]) INF
  949.      gestaltMachineType
  950.      Returns one of the following values, indicating the type of
  951.      machine.
  952.  
  953.      RELEASED
  954.      const
  955.      gestaltMachineType       = 'mach'; {machine type}
  956.      gestaltClassic           =   1;    {Macintosh 128K}
  957.      gestaltMacXL             =   2;    {Macintosh XL}
  958.      gestaltMac512KE          =   3;    {Macintosh 512KE}
  959.      gestaltMacPlus           =   4;    {Macintosh Plus}
  960.      gestaltMacSE             =   5;    {Macintosh SE}
  961.      gestaltMacII             =   6;    {Macintosh II}
  962.      gestaltMacIIx            =   7;    {Macintosh IIx}
  963.      gestaltMacIIcx           =   8;    {Macintosh IIcx}
  964.      gestaltMacSE030          =   9;    {Macintosh SE/30}
  965.      gestaltPortable          =  10;    {Macintosh Portable}
  966.      gestaltMacIIci           =  11;    {Macintosh IIci}
  967.      gestaltMacIIfx           =  13;    {Macintosh IIfx}
  968.      gestaltMacClassic        =  17;    {Macintosh Classic}
  969.      gestaltMacIIsi           =  18;    {Macintosh IIsi}
  970.      gestaltMacLC             =  19;    {Macintosh LC}
  971.      gestaltQuadra900         =  20;    {Macintosh Quadra 900 *AT01}
  972.      gestaltPowerBook170      =  21;    {Macintosh PowerBook 170 *AT01}
  973.      gestaltQuadra700         =  22;    {Macintosh Quadra 700 *AT01}
  974.      gestaltClassicII         =  23;    {Macintosh Classic II *AT01}
  975.      gestaltPowerBook100      =  24;    {Macintosh PowerBook 100 *AT01}
  976.      gestaltPowerBook140      =  25;    {Macintosh PowerBook 140 *AT01}
  977.      gestaltQuadra950         =  26;    {Macintosh Quadra 950 *AT01}
  978.      gestaltMacLCIII          =  27;    {Macintosh LC III}
  979.      gestaltPowerBook210      =  29;    {Macintosh PowerBook 210}
  980.      gestaltMacCentris650     =  30;    {Macintosh Centris 650}
  981.      gestaltPowerBook230      =  32;    {Macintosh PowerBook 230}
  982.      gestaltPowerBook180      =  33;    {Macintosh PowerBook 180}
  983.      gestaltPowerBook160      =  34;    {Macintosh PowerBook 160}
  984.      gestaltMacQuadra800      =  35;    {Macintosh Quadra 800}
  985.      gestaltMacQuadra650      =  36;    {Macintosh Quadra 650 *AT01}
  986.      gestaltMacLCII           =  37;    {Macintosh LC II}
  987.      gestaltPowerBookDuo250   =  38;    {Macintosh PowerBook Duo 250 *AT01}
  988.      gestaltPowerMac9150      =  39;    {Power Macintosh 9150 *AT01}
  989.      gestaltPowerMac8100_110? =  40;    {Power Macintosh 8100/110}
  990.      gestaltMacIIvi           =  44;    {Macintosh IIvi}
  991.      gestaltPerforma600       =  45;    {Macintosh Performa 600}
  992.      gestaltMacIIvx           =  48;    {Macintosh IIvx}
  993.      gestaltMacColorClassic   =  49;    {Macintosh Color Classic}
  994.      gestaltPowerBook165c     =  50;    {Macintosh PowerBook 165c}
  995.      gestaltMacCentris610     =  52;    {Macintosh Centris 610}
  996.      gestaltMacQuadra610      =  53;    {Macintosh Quadra 610 *AT01}
  997.      gestaltPowerBook145      =  54;    {Macintosh PowerBook 145 & 145b}
  998.                                         { *AT01}
  999.      gestaltMacLC520          =  56;    {Macintosh LC 520 *AT01}
  1000.      gestaltMacCentris660AV   =  60;    {Macintosh Centris 660AV *AT01}
  1001.      gestaltPerforma460       =  62;    {Macintosh Performa 460}
  1002.      gestaltPowerMac8100_80   =  65;    {Power Macintosh 8100/80}
  1003.      gestaltPowerBook180c     =  71;    {Macintosh PowerBook 180c *AT01}
  1004.      gestaltPowerBook520_540  =  72;    {Macintosh PowerBook 520, 520c,}
  1005.                                         { 540 & 540c}
  1006.                                         { use MaximumProcessorSpeed from}
  1007.                                         { Power Mgr. 25 and 33 resp. *AT01}
  1008.      gestaltPowerMac6100_60   =  75;    {Power Macintosh 6100/60}
  1009.      gestaltPowerBookDuo270c  =  77;    {Macintosh PowerBook Duo 270c}
  1010.                                         { *AT01}
  1011.      gestaltMacQuadra840AV    =  78;    {Macintosh Quadra 840AV *AT01}
  1012.      gestaltMacLC550          =  80;    {Macintosh LC 550 *AT01}
  1013.      gestaltPowerBook165      =  84;    {Macintosh PowerBook 165 *AT01}
  1014.      gestaltMacTV             =  88;    {Macintosh TV}
  1015.      gestaltMacLC475          =  89;    {Macintosh LC 475 *AT01}
  1016.      gestaltMacLC575          =  92;    {Macintosh LC 575 *AT01}
  1017.      gestaltMacQuadra605      =  94;    {Macintosh Quadra 605 *AT01}
  1018.      gestaltMacLC630          =  98;    {Macintosh LC 630, see below *AT01}
  1019.      gestaltMacQuadra630      =  98;    {Macintosh Quadra 630 *AT01}
  1020.                                         { Q630 has MC68040, LC 630 has}
  1021.                                         { MC68LC040 but can upgrade}
  1022.      gestaltPowerBookDuo280   = 102;    {Macintosh PowerBook Duo 280}
  1023.      gestaltPowerBookDuo280c  = 103;    {Macintosh PowerBook Duo 280c}
  1024.      gestaltPowerMac7100_66   = 112;    {Power Macintosh 7100/66}
  1025.      gestaltPowerBook150      = 115;    {Macintosh PowerBook 150}
  1026.      gestaltPowerMacQ700?     = 116;    {Quadra 700 upgrade card?}
  1027.      gestaltPowerMacQ900?     = 117;    {Quadra 900 upgrade card?}
  1028.      gestaltPowerMacQ950?     = 118;    {Quadra 950 upgrade card?}
  1029.      gestaltPowerMacC610?     = 119;    {Centris 610 upgrade card?}
  1030.      gestaltPowerMacC650?     = 120;    {Centris 650 upgrade card?}
  1031.      gestaltPowerMacQ610?     = 121;    {Quadra 610 upgrade card?}
  1032.      gestaltPowerMacQ650?     = 122;    {Quadra 650 upgrade card?}
  1033.      gestaltPowerMacQ800?     = 123;    {Quadra 800 upgrade card?}
  1034.  
  1035.      Exceptions with systems prior to System 7.1:
  1036.      const
  1037.      gestaltMacLCII           =  19;    {Macintosh LC & LC II}
  1038.                                         { LC has MC68020,LC II has MC68030}
  1039.      gestaltPowerBook145      =  25;    {Macintosh PowerBook 140 & 145}
  1040.                                         { use GetCPUSpeed from}
  1041.                                         { Power Mgr? 16 and 25 resp.}
  1042.  
  1043.      Released unknown
  1044.      At the moment there are no released Macintosh models of which the
  1045.      machine ID is unknown.
  1046.  
  1047.      Relabeled
  1048.      Performa 200             = gestaltClassicII
  1049.      Performa 250             = gestaltMacColorClassic
  1050.                                 (sold in Australia & Britain)
  1051.      Performa 400             = gestaltMacLCII
  1052.      Performa 405             = gestaltMacLCII
  1053.      Performa 410             = gestaltMacLCII
  1054.      Performa 430             = gestaltMacLCII
  1055.      Performa 450             = gestaltMacLCIII
  1056.      Performa 466             = gestaltMacLCIII
  1057.      Performa 467             = gestaltMacLCIII
  1058.      Performa 475             = gestaltMacLC475
  1059.      Performa 476             = gestaltMacLC475
  1060.      Performa 550             = gestaltMacLC550
  1061.      Performa 560MM           = gestaltMacLC550
  1062.      Performa 575             = gestaltMacLC575
  1063.      Performa 577             = gestaltMacLC575
  1064.      Performa 578             = gestaltMacLC575
  1065.      Performa 600             = gestaltMacIIvx
  1066.      Performa 630             = gestaltMac630?
  1067.      Performa 635             = gestaltMac630?
  1068.      Performa 636             = gestaltMac630?
  1069.      Performa 638CDV          = gestaltMac630?
  1070.      Performa 6110CD          = gestaltPowerMac6100_60
  1071.      Performa 6112CD          = gestaltPowerMac6100_60
  1072.      Performa 6115CD          = gestaltPowerMac6100_60
  1073.      Performa 6117CD          = gestaltPowerMac6100_60
  1074.      Performa 6118CD          = gestaltPowerMac6100_60
  1075.      PowerMac 6100/60AV       = gestaltPowerMac6100_60
  1076.      PowerMac 7100/66AV       = gestaltPowerMac7100_66
  1077.      PowerMac 8100/80AV       = gestaltPowerMac8100_80
  1078.      PowerMac WGS 6150        = gestaltPowerMac6100_60 ?
  1079.      PowerMac WGS 8150        = gestaltPowerMac8100_80 ?
  1080.      PowerMac WGS 9150        = gestaltPowerMac9150
  1081.      Quadra 660AV             = gestaltMacCentris660AV
  1082.      Workgroup Server 60      = gestaltMacCentris610
  1083.      Workgroup Server 80      = gestaltMacQuadra800
  1084.      Workgroup Server 95      = gestaltQuadra950
  1085.      Workgroup Server 95+     = gestaltQuadra950
  1086.  
  1087.      UNRELEASED (RUMOURED / PRERELEASES)
  1088.      const
  1089.      gestaltPaulaMac?         =  31;    {"Paula's Desk Macintosh" in}
  1090.                                         { PowerPC Enabler 1.1}
  1091.      gestaltUnknownLC475?     =  90;    {Q605 as a LC475 at 33 Mhz instead}
  1092.                                         { of 25 Mhz}
  1093.      gestaltQ605_20?          =  93;    {Q605 at 20 Mhz instead of 25 Mhz}
  1094.      gestaltQ605_33?          =  95;    {Q605 at 33 Mhz instead of 25 Mhz}
  1095.      gestaltTellShow          =  98;    {codename for LC630? *AD16}
  1096.      gestaltUnknownMac?       =  99;    {???, 'Macintosh' in Enabler 405}
  1097.      gestaltTellXfmr          =  99;    {codename LC630 successor? *AD16}
  1098.      gestaltPowerMac6100_66?  =  46;    {Power Macintosh 6100/66?}
  1099.      gestaltPowerMac6100_66?  = 100;    {Power Macintosh 6100/66?}
  1100.      gestaltPowerMac6100_80?  = 101;    {Power Macintosh 6100/80}
  1101.      gestaltPowerMac7100_60?  = 111;    {Power Macintosh 7100/60}
  1102.      gestaltPowerMac7100_80?  =  47;    {Power Macintosh 7100/80?}
  1103.      gestaltPowerMac7100_80?  = 113;    {Power Macintosh 7100/80?}
  1104.      gestaltPowerMac8100_60?  =  61;    {Power Macintosh 8100/80 when}
  1105.                                         { actually running at 60 MHz}
  1106.                                         { (value found experimentally)}
  1107.      gestaltPowerMac8100_60?  =  64;    {Power Macintosh 8100/60 but also}
  1108.                                         { Power Macintosh 8100/80 when}
  1109.                                         { actually running at 66.6 MHz}
  1110.                                         { (value from PowerPC Enabler)}
  1111.      gestaltPowerMac8100_100? =  55;    {Power Macintosh 8100/100?}
  1112.      gestaltPowerMac8100_100? =  66;    {Power Macintosh 8100/100?}
  1113.      gestaltPowerMac8100_120  =  12;    {Power Macintosh 8100/120}
  1114.  
  1115.      Unreleased unknown
  1116.      const
  1117.      gestaltPomona???         = ???;    {unknown, codename Pomona?}
  1118.      Pomona is probably the codename of a new line of home and business
  1119.      machines scheduled for early 1995, with three models:
  1120.        gestalt???               = ???
  1121.        gestalt???               = ???
  1122.        gestalt???               = ???
  1123.      gestalt???               =  43;    {unknown, pre-rel. Tempest/Cyclone}
  1124.      gestaltAlchemy?          = ???;    {unknown, codename Alchemy}
  1125.      gestaltCatalyst?         = ???;    {unknown, codename Catalyst}
  1126.      gestaltNitro?            = ???;    {unknown, codename Nitro}
  1127.      gestaltPowerBookDuo2300? = ???;    {PowerBook Duo 2300 (or AJ?) with}
  1128.                                         {PPC 603? (May 95)}
  1129.      gestaltPowerBookDuo2300c?= ???;    {PowerBook Duo color (or AJc?) with
  1130.                                         { PPC 603? (May 95)}
  1131.      gestaltPowerBook603?     = ???;    {Macintosh PowerBook with PPC 603?}
  1132.                                         { June 95}
  1133.      gestaltTNTPowerMacsHP?   = ???;    {TNT PowerMac, High Perf.?}
  1134.      gestaltTNTPowerMacsGW?   = ???;    {TNT PowerMac, Graphics Workstation?}
  1135.      gestaltTsunami?          = ???;    {unknown, codename Tsunami}
  1136.  
  1137.      Relabeled
  1138.      -
  1139.  
  1140.      NOTES:
  1141.      The Power Macintosh computers also set the three low bits of a 32-bit
  1142.      register at address $5FFF FFFC to a machine identification code.
  1143.  
  1144.      ======================================================================
  1145.      Power Macintosh register identification codes
  1146.      ======================================================================
  1147.      Machine                     Register bits
  1148.      ----------------------------------------------------------------------
  1149.      Power Macintosh 6100        000
  1150.      Power Macintosh 7100        010
  1151.      Power Macintosh 8100        011
  1152.      ----------------------------------------------------------------------
  1153.  
  1154.      An upgraded Centris 610 doesn't return 119 (Centris 610 upgrade card?)
  1155.      but 75 (PowerMac 6100). (Carl R. Osterwald)
  1156.      With an upgraded Quadra 700 the upgrade card value is returned. The
  1157.      values for the upgrade cards came from the kMachineNameStrID resource
  1158.      from the Power Mac Upgrade Card enabler distributed with System
  1159.      Update 3.0 on disk 2. The Power Macintosh Card 1.0 control panel
  1160.      checks both the Quadra/Centris machine IDs and the ones for the
  1161.      upgrade cards to determine if it can run. (Rene Ros)
  1162.  
  1163.      When a PowerMac is clock-chipped it changes the machine type ID it
  1164.      returns. This has been observed with a PM 6100/60 which was chipped to
  1165.      80 MHz and higher, it returned 101 which belongs to a PM 6100/80
  1166.      (Mike Cohen). Even funnier is a 8100AV (standard at 80 MHz) which
  1167.      returns 64 ("8100/60") with a clockspeed of 66.6 MHz, but 61 (???)
  1168.      and no name in the 'About this Macintosh' window at 60 MHz.
  1169.      - Centris 650 can be changed into a Quadra 650 by a resistor swap.
  1170.      - remove jumper J118 of Q605 and it becomes a LC475.
  1171.      - LC III/P450 returns value for P460 when chipped to 33 MHz.
  1172.      For more info on clock-chipping Macs:
  1173.           http://bambam.cchem.berkeley.edu/~schrier/mhz.html
  1174.      (Marc Schrier, the 'clock-chipping' guy who was experimenting a bit
  1175.      but most of the time he is speeding them up...).
  1176.  
  1177.      The Machine Name STR# resource in the PowerPC Enabler 1.1 contains
  1178.      this:
  1179.        items 1-66 contain the item number itself except:
  1180.              12 Power Macintosh 8100/120
  1181.              31 Paula's Desk Macintosh
  1182.              39 Workgroup Server 9150
  1183.              40 Power Macintosh 8100/110
  1184.              46 Power Macintosh 6100/66
  1185.              47 Power Macintosh 7100/80
  1186.              55 Power Macintosh 8100/100
  1187.              64 Power Macintosh 8100/60
  1188.              65 Power Macintosh 8100/80
  1189.              66 Power Macintosh 8100/100
  1190.        items 67-115 are empty except:
  1191.              75 Power Macintosh 6100/60
  1192.             100 Power Macintosh 6100/66
  1193.             101 Power Macintosh 6100/80
  1194.             111 Power Macintosh 7100/60
  1195.             112 Power Macintosh 7100/66
  1196.             113 Power Macintosh 7100/80
  1197.        items 116-123 contain the text "  Power Macintosh"
  1198.      "Paula's Desk Macintosh" disappeared again with version 1.1.1 of the
  1199.      PowerPC enabler! :-)
  1200.  
  1201.      The Performa 600 was originally planned to ship as Macintosh IIvm
  1202.      but the name was changed because users thought 'vm' meant 'Virtual
  1203.      Memory'. MOST system enablers (i.e. 001, 040, 065 & 201) still
  1204.      contain this original name.
  1205.  
  1206.      The Developer Notes (available from APDA, on ftp.apple.com and on the
  1207.      Developer CD-ROM Series) about some PowerBook models (100/140/170)
  1208.      provide incorrect information regarding the machine type returned by
  1209.      the Gestalt Manager.
  1210.  
  1211.      With the Universal Interfaces 2.0a1 a number of symbolic names for the
  1212.      types are added, but their correctness is unknown. These are:
  1213.      const
  1214.      gestaltPerforma450       =  27;
  1215.      gestaltAWS9150_80        =  39;
  1216.      gestaltMacIIvm           =  45;
  1217.      gestaltPerforma250       =  49;
  1218.      gestaltPerforma46x       =  62;
  1219.      gestaltPerforma550       =  80;
  1220.      gestaltPerforma47x       =  89;
  1221.      
  1222.      You can use the returned value as an index with GetIndString
  1223.      to get the machine's name. The STR# resource ID is:
  1224.      kMachineNameStrID       = -16395;
  1225.  
  1226.      On Macintosh Performas, the Machine Name STR# resource will always
  1227.      return the string "Macintosh" (not "Macintosh Performa 450" or
  1228.      "Performa 450").  On all other Macintoshes, the string will return
  1229.      the correct name. (Mark Dawson)
  1230.      [But] if you do a dirty install [of System 7.5 or later] (right on top
  1231.      of an existing, pre-7.5 System), your machine type and icon will be
  1232.      preserved. If you do a clean install, you'll get the generic name/icon
  1233.      in the Finder's "About This Macintosh..." dialog. (Tim Swihart)
  1234.      This can be fixed by using the freeware Mac Identifier extension from
  1235.      Flux Software, written by Maurice Volaski. See the 'Related Software'
  1236.      section of the 'General Info' chapter for availability. (Rene Ros)
  1237.      In the future ID's will be reused and the kMachineNameStrID will
  1238.      contain only the text '  Macintosh' (two spaces first) *AT01
  1239.      Why, oh why? (Rene Ros)
  1240.  
  1241.      All system enablers have a STR# resource -16395 (kMachineNameStrID)
  1242.      included to replace the one in the System file. In most cases this
  1243.      resource lists the same Macintosh names as the original one in
  1244.      System 7.1 and adds the names of the machines the enabler is intended
  1245.      for. But some only list the machines the enabler is used with.
  1246.      Therefore, if you want to display the name of a machine which isn't
  1247.      of the current machine type you can't rely on this resource anymore.
  1248.      Using the archive mail server you can obtain a ResEdit file with the
  1249.      complete machine name string resource. The command to use is
  1250.          archive get src/machname-str.sit.hqx
  1251.      I will keep it up-to-date along with the changes in this 'mach' entry.
  1252.      (Rene Ros)
  1253.  
  1254.      IM More Macintosh Toolbox (p. 1-127) lists this selector as
  1255.      'gestaltMachineModel'.
  1256.  
  1257.      (Sources of relabled and unreleased machines:
  1258.       MacFacts Two by J.D.S. Babcock <jdsb@ee.duke.edu>;
  1259.       Duo FAQ by Nicholas C. De Mello <nick@pitt.edu>;
  1260.       MacWEEK magazine;
  1261.       TidBits magazine by Adam Engst & Co.)
  1262. malr (PowerTalk ext [1.0?], part of PowerTalk)
  1263.      gestaltSMPMailerVersion
  1264.      Returns the SMP Mailer version as INTEGER.
  1265.  
  1266.      const
  1267.      gestaltSMPMailerVersion = 'malr'; {SMP Mailer version}
  1268. micn (System [6.0.4]) INF
  1269.      gestaltMachineIcon
  1270.      Returns an icon family resource ID for the current type of
  1271.      Macintosh.
  1272.  
  1273.      const
  1274.      gestaltMachineIcon = 'micn'; {machine ICON/cicn res ID}
  1275.  
  1276.      NOTE:
  1277.      The icon resource ID returned is based on the gestaltMachineType
  1278.      response which is used as index into a table. This table of
  1279.      resource IDs differs for most System Software versions (and
  1280.      enablers). If you really want to know the icon resource ID of a
  1281.      machine which is not the current machine you have the following
  1282.      options:
  1283.      - Write a GDEF to replace the 'mach' selector, let this GDEF return
  1284.        the original gestaltMachineType unless a certain selector exists.
  1285.        Create this selector with the GestaltValue code and make it loop
  1286.        from 1 to the number of items in the STR# kMachineNameStrID
  1287.        resource, let the custom GDEF return this as the machine type so
  1288.        the gestaltMachineIcon selector will use this to look up the icon
  1289.        resource ID. Then remove the GestaltValue selector and restore the
  1290.        original gestaltMachineType selector.
  1291.      - Get the entrypoint of the gestaltMachineIcon GDEF, jump into the
  1292.        GDEF a few bytes further (and thus skipping the gestalt call using
  1293.        the gestaltMachineType selector), emulate a genuine call to Gestalt
  1294.        by setting the A0 (response, the machineType you want) and
  1295.        D0 (result) registers correct.
  1296.      - Determine the start of the table, which is located in memory before
  1297.        the entrypoint of the gestaltMachineIcon GDEF code, and calculate
  1298.        the offset to the icon resource ID you need. If you want code which
  1299.        does this, you can contact me (Rene Ros) an I will sent you some
  1300.        Pascal source code.
  1301.      (David Greenspon, Michael Hecht and Rene Ros)
  1302.  
  1303.      It appears as if this selector returns always the ID of the general
  1304.      Macintosh icon (like in the Welcome screen), starting with System 7.5.
  1305.      (Rene Ros)
  1306. misc (System [6.0.5])
  1307.      gestaltMiscAttr
  1308.      Returns information about miscellaneous pieces of software or
  1309.      hardware.
  1310.  
  1311.      const
  1312.      gestaltMiscAttr          = 'misc'; {miscellaneous attributes}
  1313.      gestaltScrollingThrottle = 0;
  1314.      gestaltBootGlobals       = 1;      {Boot Globals *M02}
  1315.      gestaltSquareMenuBar     = 2;
  1316. mixd (System? [7.1.2?])
  1317.      gestaltMixedModeAttr
  1318.      Returns information about the Mixed Mode Manager.
  1319.  
  1320.      const
  1321.      gestaltMixedModeAttr = 'mixd'; {Mixed Mode Mgr attributes}
  1322.      gestaltPowerPCAware  = 0;      {True if MMMgr Supports PowerPC}
  1323.  
  1324.      NOTE:
  1325.      IM OS Utilities lists the 'mixd' selector as 'gestaltMixedModeVersion'
  1326.      but I don't believe that... (Rene Ros)
  1327. mmu  (System [6.0.4])
  1328.      gestaltMMUType
  1329.      Returns a value that indicates the type of MMU currently installed,
  1330.      if any.
  1331.  
  1332.      const
  1333.      gestaltMMUType  = 'mmu ';  {MMU Type}
  1334.      gestaltNoMMU    = 0;       {no MMU}
  1335.      gestaltAMU      = 1;       {AMU}
  1336.      gestalt68851    = 2;       {68851 MMU}
  1337.      gestalt68030MMU = 3;       {built-in 68030 MMU}
  1338.      gestalt68040MMU = 4;       {built-in 68040/68LC040 *S01}
  1339.      gestaltEMMU1    = 5;       {Emulated MMU type 1, PowerPC MMU *AS05}
  1340. mtcp (MacTCP cp [1.1])
  1341.      gestaltMacTCPAttr? *AD01
  1342.      Returns the version of MacTCP, if opened, as index-value.
  1343.  
  1344.      ====================
  1345.      MacTCP responses
  1346.      ====================
  1347.      Version   Response
  1348.      --------------------
  1349.       1.1         1
  1350.       1.1.1       2
  1351.       2.0.x       3
  1352.      --------------------
  1353.  
  1354.      If MacTCP is not opened a value of 0 is returned.
  1355.      No constants are defined with the documentation.
  1356. nlup (System [7.0])
  1357.      gestaltStdNBPAttr
  1358.      Returns information about the call StandardNBP.
  1359.  
  1360.      gestaltStdNBPAttr                 = 'nlup'; {Standard NBP attributes}
  1361.      gestaltStdNBPPresent              = 0;
  1362.      gestaltStdNBPSupportsAutoPosition = 1;      {StandardNBP takes (-1,-1)}
  1363.                                                  { for auto-positioning}
  1364. nmgr (System [6.0.5])
  1365.      gestaltNotificationMgrAttr
  1366.      Returns information about the Notification Manager.
  1367.  
  1368.      const
  1369.      gestaltNotificationMgrAttr = 'nmgr'; {Notification Mgr attributes}
  1370.      gestaltNotificationPresent = 0;
  1371. nubs (System [6.0.4, 6.0.5, 6.0.7, discontinued])
  1372.      gestaltNuBusSlotCount
  1373.      Returns count of NuBus slots.
  1374.  
  1375.      const
  1376.      gestaltNuBusSlotCount = 'nubs'; {NuBus slot count}
  1377. ocet (PowerTalk Manager ext [1.0?], part of PowerTalk)
  1378.      gestaltOCEToolboxVersion
  1379.      Returns the versions of the S&F Server and the OCE Toolbox as BCD.
  1380.  
  1381.      const
  1382.      gestaltOCEToolboxVersion = 'ocet'; {OCE Toolbox version}
  1383.      gestaltOCETB             = $0102;  {current OCE Toolbox version 1.0.2}
  1384.      gestaltSFServer          = $0100;  {current S&F Server version 1.0}
  1385.  
  1386.      NOTE:
  1387.      The high order word will represent the S&F Server version number, and
  1388.      the low order the OCE Toolbox version number both as BCD.
  1389.      These will be zero until the component is up and running.
  1390. oceu (PowerTalk Manager ext [1.0?], part of PowerTalk)
  1391.      gestaltOCEToolboxAttr
  1392.      Returns information about the Open Colloboration Environment Toolbox.
  1393.  
  1394.      const
  1395.      gestaltOCEToolboxAttr          = 'oceu'; {OCE Toolbox attributes}
  1396.      gestaltOCETBPresent            = $1;     {OCE toolbox is present,}
  1397.                                               { not running}
  1398.      gestaltOCETBAvailable          = $2;     {OCE toolbox is running and}
  1399.                                               { available}
  1400.      gestaltOCESFServerAvailable    = $4;     {S&F Server is running and}
  1401.                                               { available}
  1402.      gestaltOCTBNativeGlueAvailable = $10;    {PowerPC glue available}
  1403.                                               { *AS13}
  1404.  
  1405.      NOTE:
  1406.      Any (future) remaining OCE attributes may not be established
  1407.      correctly until the attribute gestaltOCETBAvailable is set.
  1408. os   (System [6.0.4, 7.0 and later])
  1409.      (Process Manager INIT ext [???], part of ???)
  1410.      gestaltOSAttr
  1411.      Returns general information about the Operating System.
  1412.  
  1413.      const
  1414.      gestaltOSAttr               = 'os  '; {O/S attributes}
  1415.      gestaltSysZoneGrowable      =  0;
  1416.      gestaltLaunchCanReturn      =  1;
  1417.      gestaltLaunchFullFileSpec   =  2;
  1418.      gestaltLaunchControl        =  3;
  1419.      gestaltTempMemSupport       =  4;
  1420.      gestaltRealTempMemory       =  5;
  1421.      gestaltTempMemTracked       =  6;
  1422.      gestaltIPCSupport           =  7;
  1423.      gestaltSysDebuggerSupport   =  8;
  1424.      gestaltSkiaGlobalsSwitched  =  9;     {*AS05}
  1425.      gestaltBgndMouseDownSupport = 10;     {unnamed Process Mgr routine}
  1426.                                            { available to indicate if a}
  1427.                                            { layer switch is wanted by the}
  1428.                                            { application when one of its}
  1429.                                            { windows is clicked while in}
  1430.                                            { the background. *AS04}
  1431.      gestaltModernMemMgr?        = 11;     {on PowerPC, Modern Mem. Mgr?}
  1432.      gestalt???                  = 13;     {unknown, System 7.5}
  1433.      gestalt???                  = 14;     {unknown, System 7.5}
  1434.  
  1435.      NOTES:
  1436.      See the Process Manager chapter in IM Processes for more information
  1437.      about the launch control features. And the Memory Manager chapter in
  1438.      IM Memory about the memory features.
  1439.      
  1440.      More information on the unnamed routine which presence is indicated
  1441.      by the gestaltBgndMouseDownSupport bit can be found in the orginal
  1442.      email from Marco Piovanelli to the editor of the GSL. You can get a
  1443.      copy by emailing this command to the mail archive server:
  1444.           archive get src/bgndmouse.txt
  1445.  
  1446.      The header file which lists the gestaltSkiaGlobalsSwitched bit says
  1447.      this:
  1448.      /*gestaltSkiaGlobalsSwitched is #9. I don't know why it is not here*/
  1449.      
  1450.      "Skia" is the code name for QuickDraw GX (MacsBug uses it for trap
  1451.      $A832, which is the main QuickDraw GX trap).
  1452.      (Lawrence D'Oliveiro, Anonymous)
  1453. ostt (System [6.0.8?])
  1454.      gestaltOSTable
  1455.      Returns the base address of the Operating System trap table.
  1456.  
  1457.      const
  1458.      gestaltOSTable = 'ostt'; {O/S trap table base}
  1459. osyv (sysvINIT ext [???] by T. Tanaka, Apple Computer Japan Inc.) INF
  1460.      gestaltOldSystemVersion?
  1461.      Returns the version of the system file as BCD which was returned
  1462.      before sysvINIT replaced the gestalt definition with a corrected one.
  1463.  
  1464.      const
  1465.      gestaltOldSystemVersion? = 'osyv';
  1466.  
  1467.      NOTE:
  1468.      Because of a bug with KanjiTalk 6.0.7 this extension (snippet code,
  1469.      available on Developer CD-ROM Series) replaces the standard 'sysv'
  1470.      Gestalt Definition (GDEF) with a corrected one to return $0x0607 and
  1471.      installs the 'osyv' selector which uses the replaced gestalt
  1472.      definition. *M03
  1473. pcxg (System? [???]) *AS04/AS05
  1474.      gestaltPCXAttr
  1475.      Returns information about PC Exchange.
  1476.  
  1477.      const
  1478.      gestaltPCXAttr            = 'pcxg'; {PC Exchange attributes}
  1479.      gestaltPCXHas8and16BitFAT = 0;      {PC Exchange supports both 8 and}
  1480.                                          { 16 bit FATs}
  1481.      gestaltPCXHasProDOS       = 1;      {PC Exchange supports ProDOS}
  1482. pgsz (System [6.0.4])
  1483.      (RAM Doubler [1.0] by Connectix Corporation)
  1484.      gestaltLogicalPageSize
  1485.      Returns the logical page size in bytes.
  1486.  
  1487.      const
  1488.      gestaltLogicalPageSize = 'pgsz'; {logical page size}
  1489.  
  1490.      NOTE:
  1491.      The value is unknown on 68000 machines, Gestalt will return an error.
  1492. pop! (System [7.0])
  1493.      gestaltPopupAttr
  1494.      Returns information about the pop-up control definition.
  1495.      
  1496.      const
  1497.      gestaltPopupAttr    = 'pop!'; {pop-up CDEF attributes}
  1498.      gestaltPopupPresent = 0;      {pop-up CDEF available}
  1499. powr (System [6.0.4])
  1500.      gestaltPowerMgrAttr
  1501.      Returns information about the Power Manager, if present.
  1502.  
  1503.      const
  1504.      gestaltPowerMgrAttr       = 'powr'; {Power Mgr attributes}
  1505.      gestaltPMgrExists         = 0;      {Power Mgr is present}
  1506.      gestaltPMgrCPUIdle        = 1;      {CPU can idle}
  1507.      gestaltPMgrSCC            = 2;      {can stop SCC clock}
  1508.      gestaltPMgrSound          = 3;      {can shut off sound circuits}
  1509.      gestaltPMgrDispatchExists = 4;      {dispatch routines are present}
  1510. ppc  (System [7.0])
  1511.      gestaltPPCToolboxAttr
  1512.      Returns information about the capabilities of the PPC Toolbox.
  1513.  
  1514.      const
  1515.      gestaltPPCToolboxAttr             = 'ppc ';  {PPC Toolbox attributes}
  1516.      gestaltPPCToolboxPresent          = $0x0000; {Requires PPCInit to be}
  1517.                                                   { called}
  1518.      gestaltPPCSupportsIncoming        = $0x0001; {Deny incoming net}
  1519.                                                   { requests}
  1520.      gestaltPPCSupportsOutGoing        = $0x0002; {Deny outgoing net}
  1521.                                                   { requests}
  1522.      gestaltPPCSupportsRealTime        = $0x1000; {Supports real-time}
  1523.                                                   { delivery}
  1524.      gestaltPPCSupportsStoreAndForward = $0x2000; {Supports store and}
  1525.                                                   { forward delivery}
  1526.      gestaltPPCSupportsDontCare        = $0x4000; {Supports specification}
  1527.                                                   { of Don't care}
  1528.  
  1529.      NOTE:
  1530.      The first thing that is confusing is that, unlike other selectors
  1531.      returning attributes, the responses are not bit values, but bit masks.
  1532.      This means you simply AND the value with the response to test the bit.
  1533.      The second thing that is confusing is how to interpret
  1534.           gestaltPPCToolboxPresent = $0x0000.
  1535.      What this means is that if the PPC toolbox is present, but has not
  1536.      been initialised (by calling PPCInit), then gestaltPPCToolboxAttr
  1537.      returns $0x0000. In reality, PPCInit gets called by the Process
  1538.      Manager before any applications get launched, so no applications will
  1539.      actually see this response. (Dave Radcliffe)
  1540. proc (System [6.0.4])
  1541.      gestaltProcessorType
  1542.      Returns a value that indicates the type of processor that is
  1543.      currently running (or emulated on Power Macs or with MAE).
  1544.  
  1545.      const
  1546.      gestaltProcessorType = 'proc'; {processor type}
  1547.      gestalt68000         = 1;      {MC68000}
  1548.      gestalt68010         = 2;      {MC68010}
  1549.      gestalt68020         = 3;      {MC68020}
  1550.      gestalt68030         = 4;      {MC68030}
  1551.      gestalt68040         = 5;      {MC68040 *S01}
  1552.  
  1553.      NOTES:
  1554.      The 68LC040 responds as type gestalt68040 but doesn't has an FPU. The
  1555.      user can swap out the 68LC040 and put in a real 68040 with FPU, so
  1556.      just checking the machineType or the processorType isn't enough.
  1557.      (Dave Radcliffe)
  1558.  
  1559.      Has there been a 68EC030 processor??? I assume it returns
  1560.      gestalt68030 but doesn't has a MMU. (Rene Ros)
  1561.  
  1562.      On a Power Macintosh the Gestalt function returns, although a 68LC040
  1563.      is emulated, the value gestalt68020. This return value is intended to
  1564.      highlight the two ways in which the 68LC040 Emulator more closely
  1565.      resembles a 68020 processor than a 68040 processor. *AD11
  1566. prpv (PowerTalk ext [1.0?], part of PowerTalk)
  1567.      gestaltSDPPromptVersion
  1568.      Returns the SDP Prompt version as INTEGER.
  1569.  
  1570.      const
  1571.      gestaltSDPPromptVersion = 'prpv'; {SDP Prompt version}
  1572. prty (System [6.0.4])
  1573.      gestaltParityAttr
  1574.      Returns information about the parity-checking abilities of the
  1575.      machine.
  1576.  
  1577.      const
  1578.      gestaltParityAttr          = 'prty'; {parity attributes}
  1579.      gestaltHasParityCapability = 0;
  1580.      gestaltParityEnabled       = 1;
  1581.  
  1582. Apple System Software (Q-Z)
  1583. ---------------------------
  1584. qd   (System [6.0.4])
  1585.      gestaltQuickDrawVersion
  1586.      Returns the version of QuickDraw currently present as 2-byte value.
  1587.  
  1588.      const
  1589.      gestaltQuickDrawVersion = 'qd  '; {QuickDraw version}
  1590.      gestaltOriginalQD       = $000;   {obsolete?}
  1591.      gestaltOriginalQD1      = $001;   {obsolete?}
  1592.      gestalt8BitQD           = $100;
  1593.      gestalt32BitQD          = $200;
  1594.      gestalt32BitQD11        = $210;
  1595.      gestalt32BitQD12        = $220;
  1596.      gestalt32BitQD13        = $230;
  1597.      gestalt32BitQD135?      = $235;   {with System 7.1.2, ROM = 3072K?}
  1598.  
  1599.      ======================================================================
  1600.      Possible Combinations of ROM Versions and System Software Versions
  1601.      ======================================================================
  1602.      ROM Class             System Version         Gestalt Value
  1603.      ----------------------------------------------------------------------
  1604.      Black-and-white class <  7.0                 gestaltOriginalQD
  1605.      (ROM < 256K)          >= 7.0                 gestaltOriginalQD and
  1606.                                               gestaltSystemVersion >= $0700
  1607.  
  1608.      Color QD class        <  7.0, no INITs       gestalt8BitQD
  1609.      (ROM = 256K)          6.0.3/6.0.4 and        gestalt32BitQD
  1610.                            32-Bit QD INIT 1.0
  1611.                            6.0.5-6.0.8 and        gestalt32BitQD12
  1612.                            32-Bit QD INIT 1.2
  1613.                            >= 7.0                 gestalt32BitQD13
  1614.  
  1615.      ci class              6.0.4                  gestalt32BitQD + 1
  1616.      (256K < ROM >= 3072K) 6.0.5-6.0.8            gestalt32BitQD12
  1617.                            >= 7.0                 gestalt32BitQD13
  1618.      PPC class?            7.1.2?                 gestalt32BitQD135?
  1619.      (ROM = 3072K)
  1620.      ----------------------------------------------------------------------
  1621.      (Original source: Develop 14, June 1993, p. 56)
  1622.  
  1623.      NOTE:
  1624.      gestalt32BitQD11 is never returned and gestalt32BitQD + 1 means
  1625.      $0x0201 as response value and doesn't has a defined constant.
  1626.      Another QuickDraw version is System 7 with a black-and-white class
  1627.      machine.
  1628. qdrw (System [7.0])
  1629.      gestaltQuickDrawFeaturesAttr
  1630.      Returns information about QuickDraw.
  1631.  
  1632.      const
  1633.      gestaltQuickDrawFeaturesAttr = 'qdrw'; {QuickDraw attributes} *S01
  1634.      gestaltHasColor              = 0;      {*S01}
  1635.      gestaltHasDeepGWorlds        = 1;      {*S01}
  1636.      gestaltHasDirectPixMaps      = 2;      {*S01}
  1637.      gestaltHasGrayishTextOr      = 3;      {*S01}
  1638.      gestaltSupportsMirroring     = 4;      {*AD12}
  1639.  
  1640.      NOTES:
  1641.      There is a bug in the 'qdrw' selector that causes it to report that
  1642.      Color QuickDraw is always present, even on machines that don't support
  1643.      it. Apple has acknowledged this bug on AppleLink. (Chris Wysocki)
  1644.      Use SysEnvirons instead or test for the QD version ('qd  ') being
  1645.      8-bit QD or later.
  1646.  
  1647.      IM OS Utilities lists this selector as 'gestaltQuickDrawFeatures'.
  1648. qtim (QuickTime ext [1.0])
  1649.      gestaltQuickTime
  1650.      Returns QuickTime version as NumVersion.
  1651.  
  1652.      const
  1653.      gestaltQuickTime = 'qtim'; {Movie Toolbox Availability}
  1654.  
  1655.      NOTES:
  1656.      The returned version is obtained from 'vers' resource ID# 1.
  1657.  
  1658.      IM OS Utilities and the Universal Interfaces 2.0a1 list this selector
  1659.      as 'gestaltQuickTimeVersion'.
  1660.  
  1661.      See 'Reports' chapter (QuickTime section) for more information.
  1662. qtrs (QuickTime PowerPlug ext [1.0?])
  1663.      gestaltQuickTimeFeatures *AS06
  1664.      
  1665.      const
  1666.      gestaltQuickTimeFeatures      = 'qtrs'; {QT Features attributes}
  1667.      gestaltPPCQuickTimeLibPresent = 0,         {PowerPC QT glue library is}
  1668.                                              { present}
  1669.  
  1670.      NOTE:
  1671.      The gestaltPPCQuickTimeLibPresent bit indicates that the native
  1672.      QuickTime interface library is available and can be called by native
  1673.      PowerPC applications. (Dave Radcliffe)
  1674. ram  (System [6.0.4])
  1675.      (RAM Doubler [1.0] by Connectix Corporation)
  1676.      gestaltPhysicalRAMSize
  1677.      Returns the number of bytes of the physical RAM currently installed.
  1678.  
  1679.      const
  1680.      gestaltPhysicalRAMSize = 'ram '; {physical RAM}
  1681. rbv  (System [6.0.4, discontinued?]) *AS04
  1682.      gestaltRBVAddr
  1683.      Returns the address of the RBV?
  1684.  
  1685.      const
  1686.      gestaltRBVAddr = 'rbv '; {RBV address}
  1687. reno (Apple Guide ext [1.2?], part of System 7.5)
  1688.      ???
  1689.      Indicates presence "of the Reno system extension." (Reno is the
  1690.      mechanism behind Apple Guide for managing the help data-bases?)
  1691. rom  (System [6.0.4]) INF
  1692.      gestaltROMSize
  1693.      Returns the size of the installed ROM in bytes.
  1694.  
  1695.      const
  1696.      gestaltROMSize = 'rom '; {ROM size}
  1697. romv (System [6.0.4]) INF
  1698.      gestaltROMVersion
  1699.      Returns the version number of the installed ROM.
  1700.  
  1701.      const
  1702.      gestaltROMVersion = romv'; {ROM version}
  1703. rsrc (System [should work since 7.0?])
  1704.      gestaltResourceMgrAttr
  1705.      Returns information about the Resource Manager.
  1706.  
  1707.      const
  1708.      gestaltResourceMgrAttr = 'rsrc'; {Resource Mgr attributes}
  1709.      gestaltPartialRsrcs    = 0;
  1710.      gestalt???             = 1;      {unknown, set with System 7.5}
  1711.  
  1712.      NOTE:
  1713.      Under System 7, bit 0 that tells if you have partial resource support
  1714.      doesn't work right. The selector is undefined under System 7.0 and
  1715.      7.0.1 even though the partial resource calls are available. This has
  1716.      been acknowledged by Apple.
  1717.      (Michael Hecht, Quinn)
  1718. rtmr (System? [7.1.1?])
  1719.      gestaltRealtimeMgrAttr
  1720.      Returns information about the Realtime Manager.
  1721.  
  1722.      const
  1723.      gestaltRealtimeMgrAttr    = 'rtmr'; {Realtime Mgr attributes}
  1724.      gestaltRealtimeMgrPresent = 0;      {Realtime Mgr is present}
  1725.  
  1726.      NOTE:
  1727.      If the RealTime Mgr is present this means the ARTA routines are
  1728.      available to determine if and how many DSPs are installed.
  1729.      (Zalman Stern)
  1730. sccr (System [6.0.4, discontinued]) *AS04
  1731.      gestaltSCCReadAddr
  1732.      Returns the address of SCC read ports.
  1733.  
  1734.      const
  1735.      gestaltSCCReadAddr = 'sccr'; {SCC read ports address}
  1736. sccw (System [6.0.4, discontinued]) *AS04
  1737.      gestaltSCCWriteAddr
  1738.      Returns the address of SCC write ports.
  1739.  
  1740.      const
  1741.      gestaltSCCWriteAddr = 'sccw'; {SCC write ports address}
  1742. scr# (System [6.0.4])
  1743.      gestaltScriptCount
  1744.      Returns the number of script systems currently active.
  1745.  
  1746.      const
  1747.      gestaltScriptCount = 'scr#'; {number of active scripts}
  1748. scra (Macintosh Easy Open cp [1.0]) *AD03
  1749.      gestaltScrapMgrAttr
  1750.      Returns information about the Scrap Manager.
  1751.  
  1752.      const
  1753.      gestaltScrapMgrAttr             = 'scra'; {Scrap Mgr attributes}
  1754.      gestaltScrapMgrTranslationAware = 0;
  1755.      gestaltTranslationMgrHintOrder  = 1;      {*AS04}
  1756. scri (System [6.0.4])
  1757.      gestaltScriptMgrVersion
  1758.      Returns the version number of the Script Manager as BCD.
  1759.  
  1760.      const
  1761.      gestaltScriptMgrVersion = 'scri'; {Script Mgr version}
  1762.  
  1763.      ======================================================================
  1764.      Version numbers for the Script Manager
  1765.      ======================================================================
  1766.      System Version       Script Mgr           Script Mgr          Version
  1767.                           (older ROMs)+        (newer ROMs)        format
  1768.      ----------------------------------------------------------------------
  1769.      6.0.3 and earlier    <= $20F              N.A.                binary
  1770.      6.0.4 Roman          $211                 $215                  "
  1771.      6.0.4 non-Roman      $212                 $216                  "
  1772.      6.0.5                $213                 $217 (=2.23)          "
  1773.  
  1774.      6.0.7                $230                 $231                BCD
  1775.      J-6.0.7.1            $230                 $231                 "
  1776.      6.0.8                $230                 $231                 "
  1777.      6.1 non-Roman        $240                 $241                 "
  1778.      7.0                  $700                 $700                 "
  1779.      7.0.1 Roman          $701                 $701                 "
  1780.      7.0.1 non-Roman      $701                 $701                 "
  1781.      7.1                  $710                 $710                 "
  1782.      7.5                  $720                 $720                 "
  1783.  
  1784.      + Plus,SE,II,IIx,IIcx,SE/30,Classic
  1785.      ----------------------------------------------------------------------
  1786.      (Original source: Inside Macintosh Text, p. 6-9)
  1787.  
  1788. scsi (System [7.1.2?])
  1789.      (SCSI Manager ext [4.3])
  1790.      gestaltSCSI *AT07
  1791.      Returns information about the SCSI Manager.
  1792.  
  1793.      const
  1794.      gestaltSCSI           = 'scsi'; {SCSI Manager attributes}
  1795.      gestaltAsyncSCSI      = 0;      {Supports asynchronous SCSI}
  1796.      gestaltAsyncSCSIINROM = 1;      {Async SCSI is in ROM}
  1797.                                      { (available for booting)}
  1798.      gestaltSCSISlotBoot   = 2;      {ROM supports Slot-style PRAM for}
  1799.                                      { SCSI boots}
  1800. sdev (Control Strip cp [1.0], part of PowerBook Utilities)
  1801.      gestaltControlStripAttr
  1802.      Returns information about the Control Strip software.
  1803.  
  1804.      const
  1805.      gestaltControlStripAttr         = 'sdev';
  1806.      gestaltControlStripExists       = 0;     {TRUE = control strip is}
  1807.                                               { installed}
  1808.      gestaltControlStripVersionFixed = 1;     {version of Control Strip}
  1809.                                               { installs 'csvr' selector}
  1810.                                               { instead of 'sdvr' *AS11}
  1811.  
  1812.      NOTES:
  1813.      Control Strip displays a row with icons and popup menus to quickly
  1814.      change settings on portable macs, i.e. AppleTalk and the sound volume.
  1815.      
  1816.      A file 'IsControlStrip.c' included with the Apple Guide Authoring Kit
  1817.      defines this selector as:
  1818.        #define gestaltStatusBarAttr 'sdev'
  1819.        #define gestaltStatusBarExists 0
  1820.      (Rene Ros)
  1821. sdvr (PowerTalk ext [1.0?], part of PowerTalk)
  1822.      gestaltSDPStandardDirectoryVersion
  1823.      Returns the SDP Standard Directory version as INTEGER.
  1824.  
  1825.      const
  1826.      gestaltSDPStandardDirectoryVersion = 'sdvr'; {SDP Standard Directory}
  1827.                                                   {version}
  1828.  
  1829.      WARNING:
  1830.      The same selector code is used by the Control Strip 1.0 control panel.
  1831.      See the gestaltControlStripVersion ('csvr') selector entry above.
  1832. ser  (System [6.0.8?])
  1833.      gestaltSerialAttr
  1834.      Returns information about the serial hardware of the machine.
  1835.  
  1836.      const
  1837.      gestaltSerialAttr  = 'ser '; {serial hardware attributes}
  1838.      gestaltGPIaToDCDa  = 0;
  1839.      gestaltGPIaToRTxCa = 1;
  1840.      gestaltGPIaToDCDb  = 2;
  1841. slot (System [6.0.4, 6.0.5, discontinued])
  1842.      gestaltSlotAttr
  1843.      Returns information about the Slot Manager.
  1844.  
  1845.      const
  1846.      gestaltSlotAttr            = 'slot'; {Slot Mgr attributes}
  1847.      gestaltSlotMgrExists       = 0;
  1848.      gestaltNuBusPresent        = 1;
  1849.      gestaltSESlotPresent       = 2;
  1850.      gestaltSE30SlotPresent     = 3;
  1851.      gestaltPortableSlotPresent = 4;
  1852. slt1 (System [6.0.4, 6.0.5, discontinued])
  1853.      gestaltFirstSlotNumber
  1854.      Returns first slot number.
  1855.  
  1856.      const
  1857.      gestaltFirstSlotNumber = 'slt1'; {First Slot number}
  1858. sltc (System [6.0.8?])
  1859.      gestaltNuBusConnectors
  1860.      Returns information about the NuBus slot connector locations. The
  1861.      value returned is a bitmap. If bits 9 to E are set, there are six
  1862.      slots present with locations 9 to E.
  1863.  
  1864.      const
  1865.      gestaltNuBusConnectors = 'sltc'; {NuBus connector bitmap}
  1866.  
  1867.      NOTE:
  1868.      This selector does not return information about the Macintosh IIsi
  1869.      slot.
  1870. snd  (System [6.0.4])
  1871.      gestaltSoundAttr
  1872.      Returns information about the sound capabilities of the machine.
  1873.  
  1874.      const
  1875.      gestaltSoundAttr           = 'snd '; {sound attributes}
  1876.      gestaltStereoCapability    =  0;     {can play stereo sounds}
  1877.      gestaltStereoMixing        =  1;     {mixes channels into single}
  1878.                                           { signal}
  1879.      gestaltSoundReserved       =  2;
  1880.      gestaltSoundIOMgrPresent   =  3;     {new sound input routines avail.}
  1881.      gestaltBuiltInSoundInput   =  4;     {built-in sound input device
  1882.                                           { available}
  1883.      gestaltHasSoundInputDevice =  5;     {some sound input device avail.}
  1884.      gestaltPlayAndRecord       =  6;     {built-in hardware can play and}
  1885.                                           { record simultaneously}
  1886.                                           { *AS03/AS04}
  1887.      gestalt16BitSoundIO        =  7;     {sound hardware can play and}
  1888.                                           { record 16-bit samples *AS04}
  1889.      gestaltStereoInput         =  8;     {sound hardware can record}
  1890.                                           { stereo *AS04}
  1891.      gestaltLineLevelInput      =  9;     {sound input port requires}
  1892.                                           { line level *AS04}
  1893.      gestaltSndPlayDoubleBuffer = 10;     {play from disk available *AS04}
  1894.      gestaltMultiChannels       = 11;     {multiple channel support}
  1895.                                           { *AS03/AS04}
  1896.      gestalt16BitAudioSupport   = 12;     {16 bit audio data supported}
  1897.                                           { *AS04}
  1898.  
  1899.      NOTES:
  1900.      Bit 7 through 12 are not defined for versions of the Sound Manager
  1901.      prior to version 3.0.
  1902.  
  1903.      If the gestaltSndPlayDoubleBuffer flag is not set you can check for
  1904.      the gestaltHasASC flag with the gestaltHardwareAttr selector. If this
  1905.      is true both SndPlayDoubleBuffer and SndStartFilePlay are present.
  1906.      *AD06
  1907. snhw (System [7.5])
  1908.      (Sound Manager ext [3.0])
  1909.      gestaltSoundHardware
  1910.      Returns type of hardware used for sound?
  1911.  
  1912.      const
  1913.      gestaltSoundHardware = 'snhw'; {Sound Hardware}
  1914.      gestaltASC           = 'asc '; {ASC}
  1915.      gestaltDSP           = 'dsp '; {DSP}
  1916.      gestaltClassicSound  = 'clas'; {Classic Mac?}
  1917.      gestaltAWAC?         = 'awac'; {returned on PowerMac}
  1918.      gestaltSing?         = 'sing'; {returned on PB 540c}
  1919. spsl (PowerTalk ext [1.0?], part of PowerTalk)
  1920.      gestaltSMPSPSendLetterVersion
  1921.      Returns the SMP SendLetter version as INTEGER.
  1922.  
  1923.      const
  1924.      gestaltSMPSPSendLetterVersion = 'spsl'; {SMP Sendletter version}
  1925. stdf (System [7.0])
  1926.      (Macintosh Easy Open cp [1.0?])
  1927.      gestaltStandardFileAttr
  1928.      Returns information about the Standard File Package.
  1929.  
  1930.      const
  1931.      gestaltStandardFileAttr             = 'stdf';{Standard File attr.}
  1932.      gestaltStandardFile58               = 0;
  1933.                           {StandardPutFile, StandardGetFile, CustomPutFile}
  1934.                                        { and CustomGetFile  are available.}
  1935.      gestaltStandardFileTranslationAware = 1; {*AD03/AS04}
  1936.      gestaltStandardFileHasColorIcons    = 2; {*AD03/AS04/AS05}
  1937.      gestaltStandardFileUseGenericIcons  = 3; {force the LDEF to use only}
  1938.                                               { the system generic icons}
  1939.                                               { *AT06}
  1940.      gestaltStandardFileHasDynamicVolumeAllocation = 4;
  1941.                                       {supports more than 20 volumes *AT06}
  1942. sysa (System [7.1.2?]) *AS04
  1943.      gestaltSysArchitecture
  1944.      Returns one of the following values, indicating the type of
  1945.      architecture on which the application is currently running.
  1946.  
  1947.      const
  1948.      gestaltSysArchitecture = 'sysa'; {System Architecture type}
  1949.      gestalt68k             = 1;
  1950.      gestaltPowerPC         = 2;
  1951. sysv (System [6.0.4]) INF
  1952.      gestaltSystemVersion
  1953.      Returns the version number of the currently active System file as BCD.
  1954.  
  1955.      const
  1956.      gestaltSystemVersion = 'sysv'; {System file version}
  1957.  
  1958.      NOTES:
  1959.      Is it correct system 6.0.8 returns $0x0607? Can you determine if it is
  1960.      actually 6.0.8 in another way?
  1961.  
  1962.      In addition KanjiTalk 6.0.7 (Japanese System) and other non-Roman
  1963.      versions return $0606. See the 'osyv' selector.
  1964.      System J-6.0.7.1 returns $0609
  1965.  
  1966.      System 7.1.2 (for Power Macintosh) apparently returns an incorrect
  1967.      version number ($0710) when in 68K mode with a PPC Upgrade card.
  1968.      (Rick Gansler)
  1969.  
  1970.      There are some system versions (like International System 6.0.8.1 or
  1971.      7.0.1.1) which just return the normal version number, i.e. 6.0.8 and
  1972.      7.0.1.
  1973. tabl (System [6.0.4])
  1974.      gestaltSelectorTable?
  1975.      Returns a handle to the Gestalt selector table itself.
  1976.  
  1977.      const
  1978.      gestaltSelectorTable? = 'tabl'; {Gestalt Table address}
  1979.  
  1980.      WARNING:
  1981.      Although this information isn't officially confirmed, it is probably
  1982.      correct. But it is likely to go away in future systems.
  1983.  
  1984.      NOTE:
  1985.      The Gestalt selector table is kept in a resizable block in the system
  1986.      heap. The last item in the table is a dummy entry (INVALID), marked by
  1987.      a selector OSType(MaxLongInt). (Marco Piovanelli, he also has some
  1988.      snippet Pascal code to list all selectors)
  1989. tbtt (System [6.0.8])
  1990.      gestaltToolboxTable
  1991.      Returns the base address of the Toolbox trap table.
  1992.  
  1993.      const
  1994.      gestaltToolboxTable = 'tbtt'; {Toolbox trap table base}
  1995. te   (System [6.0.5])
  1996.      gestaltTextEditVersion
  1997.      Returns a value that indicates which version of TextEdit is present.
  1998.  
  1999.      const
  2000.      gestaltTextEditVersion = 'te  '; {TextEdit version}
  2001.      gestaltTE1             = 1;
  2002.      gestaltTE2             = 2;
  2003.      gestaltTE3             = 3;
  2004.      gestaltTE4             = 4;
  2005.      gestaltTE5             = 5;
  2006.  
  2007.      ======================================================================
  2008.      Version numbers for TextEdit
  2009.      ======================================================================
  2010.      Returned value       New Features           System software   Hardware
  2011.      ----------------------------------------------------------------------
  2012.      gestaltUndefSelector Multistyled TE         before 6.0.4      all
  2013.      gestaltTE1                                  6.0.4 Roman       IIci
  2014.      gestaltTE2           New width              6.0.4 non-Roman   IIci
  2015.                           measurement hook
  2016.                           Script Mgr compatible
  2017.      gestaltTE3                                  6.0.4 non-Roman   non-IIci
  2018.      gestaltTE4           TEFeatureFlag          6.0.5             all
  2019.      gestaltTE5           Text width             7.0               all
  2020.                           measurement hook
  2021.      ----------------------------------------------------------------------
  2022.      (Source: Inside Macintosh Text, p.2-23)
  2023. teat (Macintosh Drag and Drop ext [1.0])
  2024.      gestaltTEAttr *AD05
  2025.      Returns information about the functions and capabilities of TextEdit.
  2026.  
  2027.      const
  2028.      gestaltTEAttr            = 'teat'; {TextEdit attributes}
  2029.      gestaltTEHasGetHiliteRgn = 0;      {TEGetHiliteRgn present}
  2030. tele (System [7.5])
  2031.      gestaltTelephoneMgrAttr?
  2032.      Returns information about the Telephone Mgr.
  2033.  
  2034.      const
  2035.      gestaltTelephoneMgrAttr?         = 'tele';
  2036.      gestaltTelephoneMgrPresent       = 0;
  2037.      gestaltPPCTelephoneLibPresent?   = 1;
  2038. term (System [7.1])
  2039.      gestaltTermMgrAttr
  2040.      Returns information about the Terminal Manager.
  2041.  
  2042.      const
  2043.      gestaltTermMgrAttr        = 'term'; {Terminal Mgr attributes}
  2044.      gestaltTermMgrPresent     = 0;      {Terminal Mgr is present}
  2045.      gestaltTermMgrErrorString = 2;      {*AS04}
  2046. thds (Thread Manager ext [1.1]) *AD04
  2047.      (QuickDraw GX ext [1.0?])
  2048.      (System [7.1.2?])
  2049.      gestaltThreadAttr
  2050.      Returns information about the Thread Manager.
  2051.  
  2052.      const
  2053.      gestaltThreadAttr            = 'thds'; {Thread Manager attributes}
  2054.      gestaltThreadsPresent        = 0;      {bit true if Threads present}
  2055.      gestaltSpecificMatchSupport  = 1;      {bit true if â€˜exact match’}
  2056.                                             { API supported}
  2057.      gestaltThreadsLibraryPresent = 2;      {bit true if ThreadsLib is}
  2058.                                             { present}
  2059.      gestalt???                   = 4;      {unknown}
  2060.      
  2061.      NOTE:
  2062.      IM OS Utilities lists this selector as 'gestaltThreadMgrAttr'.
  2063. tmgr (System [6.0.4])
  2064.      gestaltTimeMgrVersion
  2065.      Returns a value that indicates the version of the Time Manager.
  2066.  
  2067.      const
  2068.      gestaltTimeMgrVersion  = 'tmgr'; {Time Mgr version}
  2069.      gestaltStandardTimeMgr = 1;      {Standard Time Mgr}
  2070.      gestaltRevisedTimeMgr  = 2;      {Revised Time Mgr}
  2071.      gestaltExtendedTimeMgr = 3;      {Extended Time Mgr}
  2072. tpad (System? [7.5?] on PowerBook 520/540?)
  2073.      Indicates precense of a trackpad? As such used in the 'IsTrackPad.c'
  2074.      file included with the Apple Guide Authoring Kit.
  2075. tsma (System? [???])
  2076.      gestaltTSMgrAttr *AS14
  2077.      Returns information about the Text Services Manager.
  2078.  
  2079.      const
  2080.      gestaltTSMgrAttr             = 'tsma'; {Text Services Mgr attributes}
  2081.      gestaltTSMDisplayMgrAwareBit = 0;      {TSM knows about Display Mgr}
  2082. tsmv (System [7.1])
  2083.      gestaltTSMgrVersion *AT05
  2084.      Returns Text Services Manager version in BCD.
  2085.  
  2086.      const
  2087.      gestaltTSMgrVersion = 'tsmv'; {Text Services Mgr version}
  2088. tv   (System? [???])
  2089.      (Video Startup ext [1.0], part of European Video Installer)
  2090.      gestaltTVAttr *AS14
  2091.      Returns information about the TV capabilities?
  2092.  
  2093.      const
  2094.      gestaltTVAttr                = 'tv  '; {TV Version [huh? ed.]}
  2095.      gestaltHasTVTuner            = 0;      {supports Philips FL1236F}
  2096.                                             { video tuner}
  2097.      gestaltHasSoundFader         = 1;      {supports Philips TEA6330}
  2098.                                             { Sound Fader chip}
  2099.      gestaltHasHWClosedCaptioning = 2;      {supports Philips SAA5252}
  2100.                                             { Closed Captioning}
  2101.      gestaltHasIRRemote           = 3;      {supports CyclopsII Infra Red}
  2102.                                             { Remote Control}
  2103.      gestaltHasVidDecoderScaler   = 4;      {supports Philips SAA7194}
  2104.                                             { Video Decoder/Scaler}
  2105.      gestaltHasStereoDecoder      = 5;      {supports Sony SBX1637A-01}
  2106.                                             { stereo decoder}
  2107. ufox (Foreign File Access ext [4.0], part of Apple CD-ROM Software) *AT03
  2108.      gestaltForeignFAVersion?
  2109.      Returns Foreign File Access version in BCD.
  2110.  
  2111.      const
  2112.      gestaltForeignFAVersion? = 'ufox'; {Foreign File Access version}
  2113.  
  2114.      NOTE: The returned version is obtained from 'vers' resource ID# 1.
  2115. vers (System [6.0.4])
  2116.      gestaltVersion
  2117.      Returns the version of Gestalt as INTEGER.
  2118.  
  2119.      const
  2120.      gestaltVersion = 'vers'; {Gestalt version}
  2121.  
  2122.      NOTE:
  2123.      Usually version 1 is present. On machines with ROM version 1917
  2124.      (Quadra 840AV, PowerMacs etc.) version 4 is present.
  2125.      Version 5 is installed by System 7.5 adding support for the
  2126.      GestaltValue calls? (Rene Ros)
  2127. via1 (System [6.0.4, discontinued])
  2128.      gestaltVIA1Addr
  2129.      Returns the address of VIA 1.
  2130.  
  2131.      const
  2132.      gestaltVIA1Addr = 'via1'; {VIA 1 address}
  2133. via2 (System [6.0.4, discontinued])
  2134.      gestaltVIA2Addr
  2135.      Returns the address of VIA 2.
  2136.  
  2137.      const
  2138.      gestaltVIA2Addr = 'via2'; {VIA 2 address}
  2139. vm   (System [6.0.4])
  2140.      (RAM Doubler [1.0] by Connectix Corporation)
  2141.      gestaltVMAttr
  2142.      Returns information about virtual memory.
  2143.  
  2144.      const
  2145.      gestaltVMPresent      = 0; {set; virtual memory present}
  2146.      gestaltVMNotInstalled = 0; {clear; virtual memory not present}
  2147.  
  2148.      NOTE:
  2149.      Future OS may have VM always on but this is not reported by this
  2150.      selector. A future selector will tell if the microkernal is running
  2151.      and thus if VM is actually used. *AD10
  2152. wma. (System [7.0])
  2153.      (Responder ext [2.0?])
  2154.      gestaltResponderAttr
  2155.      Returns information about the Workstation Management Agent a.k.a.
  2156.      Responder.
  2157.  
  2158.      const
  2159.      gestaltResponderAttr    = 'wma.'; {Responder attributes}
  2160.      gestaltResponderPresent = 0;      {Responder is present}
  2161. xlat (Macintosh Easy Open cp [1.0]) *AD03
  2162.      gestaltTranslationAttr
  2163.      Returns information about the Translation Manager.
  2164.  
  2165.      const
  2166.      gestaltTranslationAttr            = 'xlat'; {Translation Mgr attrib.}
  2167.      gestaltTranslationMgrExists       = 0;      {TM present}
  2168.      gestaltTranslationMgrHintOrder    = 1;      {TRUE if hint order}
  2169.                                                  { reversal bug is fixed}
  2170.      gestaltTranslationPPCAvail        = 2;      {PPC Lib. available}
  2171.      gestaltTranslationGetPathAPIAvail = 3;      {GetFileTranslationPath}
  2172.                                    {and GetPathTranslationDialog available}
  2173.      gestalt???                        = 4;      {by MEO 1.1}
  2174. xttt (System [6.0.8])
  2175.      gestaltExtToolboxTable
  2176.      Returns the base address of the Extended Toolbox trap table.
  2177.  
  2178.      const
  2179.      gestaltExtToolboxTable = 'xttt'; {Extended Toolbox trap table}
  2180.  
  2181. Apple Additional Software
  2182. -------------------------
  2183. arb  (Serial Port Arbitrator ext [1.0], part of Apple Remote Access)
  2184.      gestaltArbitorAttr *AD02
  2185.      Returns information about the Serial Port Arbitration.
  2186.  
  2187.      const
  2188.      gestaltArbitorAttr             = 'arb '; {Serial Port Arbitration}
  2189.                                               { attributes}
  2190.      gestaltSerialArbitrationExists = 0;      {Serial Port Arbitration}
  2191.                                               { installed}
  2192. cltn (QuickDraw GX [1.0])
  2193.      gestaltCollectionMgrVersion
  2194.      Returns the version of the Collection Manager as NumVersion.
  2195.  
  2196.      const
  2197.      gestaltCollectionMgrVersion = 'cltn'; {Collection Mgr version}
  2198.  
  2199.      NOTE:
  2200.      The Collection Manager is a set of routines for maintaining tagged
  2201.      collections of data; GX uses it to support the "tags" that you can
  2202.      attach to GX objects, for holding special data, including
  2203.      user-defined data. (Lawrence D'Oliveiro)
  2204. fsm  (File System Manager ext [1.2?])
  2205.      gestaltFSMVersion *AD14
  2206.      Returns File System Manager version as BCD.
  2207.  
  2208.      const
  2209.      gestaltFSMVersion = 'fsm ';
  2210. gfxa (QuickDraw GX [1.0])
  2211.      gestaltGraphicsAttr
  2212.      Returns information about the Graphics.
  2213.  
  2214.      const
  2215.      gestaltGraphicsAttr        = 'gfxa'; {graphics attributes bits }
  2216.      gestaltGraphicsIsDebugging = $0001;
  2217.      gestaltGraphicsIsLoaded    = $0002;
  2218.      gestaltGraphicsIsPowerPC   = $0004;
  2219.  
  2220.      NOTE: Not bit values but bit masks? Use AND?
  2221. grfx (QuickDraw GX ext [1.0])
  2222.      gestaltGraphicsVersion
  2223.      Returns the version of the Graphics as INTEGER.
  2224.  
  2225.      const
  2226.      gestaltGraphicsVersion        = 'grfx';    {Gestalt version selector}
  2227.      gestaltCurrentGraphicsVersion = $00010000; {supposed value returned}
  2228. kids (At Ease [1.0])
  2229.      kAtEaseGestalt
  2230.      Returns a handle to a structure holding information about At Ease.
  2231.  
  2232.      The following code was published by Apple *AT06:
  2233.  
  2234.      #define kAtEaseGestalt    'kids'
  2235.      typedef struct {
  2236.        short  giVersion;         /* structure version */
  2237.        short  giIsActive;        /* true if at ease is currently running */
  2238.        short  giAutoCreateAlias; /* if true then auto create alias */
  2239.        short  giRequestFloppy;   /* if true then request floppy on new
  2240.                                     saves */
  2241.        short  giStacksAreApps;   /* if true then HyperCard stacks are shown
  2242.                                     with applications */
  2243.        FSSpec giItemsLocation;   /* location of the At Ease Items folder */
  2244.      } GestaltRec, *GestaltRecPtr, **GestaltRecHand;
  2245. mess (QuickDraw GX [1.0])
  2246.      gestaltMessageMgrVersion
  2247.      Returns the version of the Message Manager as NumVersion.
  2248.  
  2249.      const
  2250.      gestaltMessageMgrVersion = 'mess'; {Message Mgr version}
  2251.  
  2252.      NOTE:
  2253.      The Message Manager is an implementation of object-oriented-style
  2254.      message passing within an inheritance hierarchy, that can be used from
  2255.      non-OO languages.
  2256.      It is used by the GX printing system, to allow the customization of
  2257.      printing behaviour by letting applications (and developers of printing
  2258.      extensions) intercept messages sent to the printer driver.
  2259.      (Lawrence D'Oliveiro)
  2260. mtv2 (Video Player app [???])
  2261.      (Video Startup ext [1.0], part of European Video Installer)
  2262.      gestaltTV *AD16
  2263.      "Indicates whether the Video Player app is present."
  2264. pmgr (QuickDraw GX [1.0])
  2265.      gestaltPrintingMgrVersion
  2266.      Returns the version of the QuickDraw GX Printing Manager as
  2267.      NumVersion.
  2268.  
  2269.      const
  2270.      gestaltPrintingMgrVersion = 'pmgr'; {Printing Mgr version}
  2271. qdgx (QuickDraw GX [1.0])
  2272.      gestaltGXVersion
  2273.      Returns the version of QuickDraw GX as NumVersion.
  2274.  
  2275.      const
  2276.      gestaltGXVersion = 'qdgx'; {QuickDraw GX version}
  2277. srta (Speech Recognition ext [1.2.1?])
  2278.      gestaltSpeechRecognitionAttr
  2279.      Returns information about the Speech Recognition software.
  2280.  
  2281.      const
  2282.      gestaltSpeechRecognitionAttr      = 'srta';
  2283.      gestaltDesktopSpeechRecognition   = 0;      {Recognition using mic.}
  2284.      gestaltTelephoneSpeechRecognition = 1;      {FUTURE}
  2285.  
  2286.      NOTE:
  2287.      The Speech Recognition (1.2.1) only works on AV and PPC Macs, but the
  2288.      selector is installed on all machines and the response value will
  2289.      indicate the speech recognition is available. (Rene Ros)
  2290. srtb (Speech Recognition ext [1.2.1?])
  2291.      gestaltSpeechRecognitionVersion
  2292.      Returns the version of the Speech Recognition software as BCD.
  2293.  
  2294.      const
  2295.      gestaltSpeechRecognitionVersion = 'srtb';
  2296.  
  2297.      NOTE:
  2298.      The Speech Recognition (1.2.1) only works on AV and PPC Macs, but the
  2299.      selector is installed on all machines and its presence will indicate
  2300.      the speech recognition is available. (Rene Ros)
  2301. strm (Remote Access Aliases [1.0], part of Apple Remote Access)
  2302.      gestaltRemoteAccessAttr *AD02
  2303.  
  2304.      const
  2305.      gestaltRemoteAccessAttr     = 'strm'; {Remote Access attributes}
  2306.      gestaltRemoteAccessExists   = 0;      {RA Connection Interface is}
  2307.                                            { available}
  2308.      gestaltRemoteAccessCallOnly = 1;      {checks for ARA client *AD15}
  2309.      gestaltRemoteAccessMPServer = 2;      {checks for ARA multi-port}
  2310.                                            { server *AD15}
  2311.      gestaltRemoteAccessVers2    = 3;      {checks for ARA 2.0 features}
  2312.                                            { *AD15}
  2313. tmTE (Inline Extension ext [1.0], part of KanjiTalk7)
  2314.      gestaltTSMTEAttr *AS07
  2315.      Returns information about the Text Services Manager for TextEdit.
  2316.  
  2317.      const
  2318.      gestaltTSMTEAttr    = 'tmTE'; {TSM for TE attributes}
  2319.      gestaltTSMTEPresent = 0;      {TSM for TE is present}
  2320. tmTV (Inline Extension ext [1.0], part of KanjiTalk7)
  2321.      gestaltTSMTEVersion *AS07
  2322.      Returns the version of the Text Services Manager for TextEdit as BCD.
  2323.  
  2324.      const
  2325.      gestaltTSMTEVersion = 'tmTV'; {TSM for TE version}
  2326.      gestaltTSMTE1       = $0100;  {TSM for TE version 1.0}
  2327. ttsc (Text-To-Speech Manager ext [1.0?])
  2328.      gestaltSpeechAttr
  2329.      Returns information about the Speech Manager.
  2330.  
  2331.      const
  2332.      gestaltSpeechAttr       = 'ttsc'; {Text-To-Speech Manager attrib.}
  2333.      gestaltSpeechMgrPresent = 0;      {bit true if Speech Mgr present}
  2334.      gestaltSpeechHasPPCGlue = 1;      {Speech Mgr has native PPC glue}
  2335. ws 1 (WorldScript I ext [7.1?])
  2336.      gestaltWorldScriptIVersion?
  2337.      Returns version of WorldScript I software as BCD.
  2338.  
  2339.      const
  2340.      gestaltWorldScriptIVersion? = 'ws 1';
  2341. XTND (??? [???])
  2342.      gestaltXTNDAttr *AS11
  2343.      Returns information about XTND Manager?
  2344.  
  2345.      const
  2346.      gestaltXTNDAttr       = 'XTND';
  2347.      gestaltPPCXTNDPresent = 1;
  2348.  
  2349.      NOTE:
  2350.      Is used in some code to check if XTND engine is present. However it is
  2351.      unknown when it is installed, so supposedly it is meant for future
  2352.      use. Like a built-in XTND engine in the System Software? When the
  2353.      selector is installed all operations are dispatched through trap
  2354.      _XTNDMgr ($ABF4) otherwise the library provides the code.
  2355.      (Marco Piovanelli)
  2356.  
  2357. Third Parties Software
  2358. ----------------------
  2359. !SYM (Symbionts ext [1.0] by B. Kevin Hardman)
  2360.      gestaltSymbiontsTable
  2361.      Returns a pointer to a structure containing the size of the System
  2362.      Heap before and after loading the INITs.
  2363.  
  2364.      const
  2365.      gestaltSymbiontsTable = '!SYM'; {Symbionts address}
  2366. ADfd (AfterDark [2.0?] by Berkeley Systems, Inc.)
  2367.      gestaltAfterDarkFolder *M05
  2368.      Returns a pointer to a procedure that gives the DirID and vRefNum of
  2369.      the 'After Dark Files' folder.
  2370.  
  2371.      const
  2372.      gestaltAfterDarkFolder = 'ADfd';
  2373.      
  2374.      NOTE:
  2375.      See for more information the AfterDark Gestalt header file (See
  2376.      section 'Related Software' in the 'General Info' chapter for
  2377.      availability)
  2378. ADrk (AfterDark [2.0] by Berkeley Systems, Inc.)
  2379.      gestaltAfterDarkAttr *M05
  2380.      Returns a longword bitmask containing public information about
  2381.      After Dark.
  2382.  
  2383.      const
  2384.      gestaltAfterDarkAttr = 'ADrk'; {After Dark states}
  2385.      eSystemIQActive      = 0;      {SystemIQx activity monitor active}
  2386.      eSoundActive         = 1;      {AD has allocated a sound channel}
  2387.      eADAcquiringPassword = 2;      {After Dark has its password dialog up}
  2388.  
  2389.      NOTE:
  2390.      See for more information the AfterDark Gestalt header file (See
  2391.      section 'Related Software' in the 'General Info' chapter for
  2392.      availability)
  2393. AlaC (A La Carte ext [1.1?] by Denali Software Development)
  2394.      gestaltALaCarte?
  2395.      Returns the address of the A La Carte INIT global data. The structure
  2396.      of the data is proprietary.  The existence of the 'AlaC' selector
  2397.      indicates that the A La Carte INIT is loaded.
  2398.  
  2399.      const
  2400.      gestaltALaCarte? = 'AlaC';
  2401. ApoL (Apollo ext [1.0] by Jeremy Roussak)
  2402.      gestaltApolloTable
  2403.      Returns a handle to an instance of a structure.
  2404.  
  2405.      const
  2406.      gestaltApolloTable = 'ApoL'; {Apollo address}
  2407.  
  2408.      NOTE:
  2409.      See for more information the Programmers' Information chapter in the
  2410.      Apollo documentation. (Jeremy Roussak)
  2411. ASHI (Arashi app [???] by Juri Munkki)
  2412.      ???
  2413.      Returns information about the presence of Arashi by returning one (1)
  2414.      if loaded, and zero (0) when removed.
  2415. AuBu (AutoBuild ext [1.0] by Rene G.A. Ros)
  2416.      gestaltAutoBuildVersion
  2417.      Returns the version of AutoBuild as NumVersion.
  2418.  
  2419.      const
  2420.      gestaltAutoBuildVersion = 'AuBu'; {AutoBuild version}
  2421.  
  2422.      NOTE: The returned version is obtained from 'vers' resource ID# 1.
  2423. BBlk (Basic Black cp [1.3], by Mason L. Bliss)
  2424.      gestaltBasicBlackAddr
  2425.      Returns the address of Basic Black's patch globals.
  2426.  
  2427.      const
  2428.      gestaltBasicBlackAddr = 'BBlk'; {Basic Black address}
  2429.  
  2430.      NOTE:
  2431.      See documentation included with Basic Black for more information.
  2432. BIFF (QM Biff ext [1.0] by Patrick C. Beard)
  2433.      ???
  2434.      Determines if there is mail (QuickMail). The response long word is 1
  2435.      if you have mail, and 0 if you don't.
  2436. Cafe (Coffee Break appl [1.0] by Thomas Reed)
  2437.      gestaltCoffeeBreakAddr?
  2438.      Returns a pointer to a code resource owned by Coffee Break.
  2439.      Details are private.
  2440.  
  2441.      const
  2442.      gestaltCoffeeBreakAddr? = 'Cafe';
  2443. CKI3 (AETracker cp [3.0] by C.K. Haun)
  2444.      gestaltAETrackerAddr
  2445.      This selector returns a pointer to the external interface routine for
  2446.      AETracker, details of which are in the AETracker interface guide.
  2447.      (C.K. Haun)
  2448.  
  2449.      const
  2450.      gestaltAETrackerAddr = 'CKI3'; {AETracker address}
  2451. CsWT (Desktop Strip cp [1.0b1] by Sigurdur Asgeirsson)
  2452.      gestaltDesktopStripAttr?
  2453.      Returns information about the installed Desktop Strip software.
  2454.  
  2455.      const
  2456.      gestaltDesktopStripAttr?    = 'CsWT';
  2457.      gestaltDesktopStripPresent? = 0;
  2458. dBgP (DBugR cp [1.0?] by Alessandro Levi Montalcini)
  2459.      ???
  2460.      Returns a pointer to a data structure with the preferences,
  2461.      identical to the data in the PREF resource, for which a template
  2462.      is included.
  2463.  
  2464.      NOTE: The d is actually the option-d character (ASCII $B6).
  2465. EagL (Eagle ext [1.4], part of Apollo 1.1 by Jeremy Roussak)
  2466.      gestaltEagleAttr?
  2467.      Returns information about the state of the Eagle background
  2468.      application.
  2469.  
  2470.      const
  2471.      gestaltEagleAttr?     = 'EagL'; {Eagle attributes}
  2472.      gestaltEaglePPCReady? = 0;      {Eagle can accept next PPC}
  2473. FPUE (SoftwareFPU cp [3.0?] by John Neil & Associates) *M06
  2474.      gestaltSoftwareFPUAddr?
  2475.      Detects presence of SoftwareFPU.
  2476.      If the result of the Gestalt call is noErr, then SoftwareFPU is
  2477.      installed, and the 68881 FPU reported by the gestaltFPUType selector
  2478.      is an emulated FPU. The value returned in the response is private and
  2479.      should be ignored.
  2480.  
  2481.      const
  2482.      gestaltSoftwareFPUAddr? = 'FPUE';
  2483. FrcP (Decor cp [1.0] by Francois Pottier)
  2484.      gestaltDecorAddr
  2485.      Returns a pointer to a structure which can be read or changed, and
  2486.      enables programmers to change the picture on the desktop.
  2487.  
  2488.      const
  2489.      gestaltDecorAddr = 'FrcP'; {Decor address}
  2490.  
  2491.      NOTES:
  2492.      See for more information on how to use this structure the
  2493.      documentation included with Decor 1.0 or later.
  2494.  
  2495.      The c is actually the option-c character (ASCII $8D).
  2496. Gast (Gestalt! appl [2.9.2] by Roland Mansson)
  2497.      gestaltGestaltVersion
  2498.      Returns the version of the application as NumVersion.
  2499.      GestaltValue is removed when application quits. Just for fun.
  2500.      (Roland Mansson)
  2501.  
  2502.      const
  2503.      gestaltGestaltVersion = 'Gast'; {Gestalt! version}
  2504.  
  2505.      NOTE: The a is actually the option-u/a character (ASCII $8A).
  2506. GTLK (GestaltTalk code by Brigham Stevens, Apple Computer DTS)
  2507.      ???
  2508.      Snippet code, see documentation. (See section 'Related Software'
  2509.      in the 'General Info' chapter for availability).
  2510. GWat (GestaltWatch ext [1.0] by Scot Bronson)
  2511.      ???
  2512.      Returns pointer to structure where collected information is stored.
  2513.  
  2514.      NOTE: In development, not yet available.
  2515. IF 8 (Speak Note cp [???] by Glenn R. Howes)
  2516.      gestaltSpeechNoteAttr?
  2517.      Returns information about the installed copy of Speak Note.
  2518.  
  2519.      const
  2520.      gestaltSpeechNoteAttr?     = 'IF 8';
  2521.      gestaltSpeechNoteAvailable = 0;
  2522. Lnch (Network Time cp [2.0] by Pete Resnick)
  2523.      (First Launch Gestalt INIT code resource, by Pete Resnick)
  2524.      gestaltFirstLaunchAttr
  2525.      Returns info on whether the _Launch trap has been called by the
  2526.      System.
  2527.  
  2528.      const
  2529.      gestaltFirstLaunchAttr = 'Lnch'; {_Launch information)
  2530.      gestaltFirstLaunchDone = 0;      {_Launch called, INIT time over}
  2531.  
  2532.      NOTE:
  2533.      Bit 0 of the response, gestaltFirstLaunchDone, indicates whether the
  2534.      _Launch trap has been called since startup of the machine. All other
  2535.      bits are reserved and currently 0. Even if not installed at INIT time,
  2536.      Network Time will install the Gestalt selector if it is not already
  2537.      there when the control panel is opened and automatically set
  2538.      bit 0 to 1.
  2539.      68000 assembler source code is available for the INIT that installs
  2540.      the selector, and INIT resource -4048 from Network Time may be
  2541.      stolen (and renumbered as desired) and used in any INIT file as
  2542.      desired. (Pete Resnick)
  2543. NIPX (Novell MacIPX cp [1.0.1] by Novell Inc.)
  2544.      gestaltNovellIPXVersion
  2545.      Returns the version of MacIPX as NumVersion.
  2546.  
  2547.      const
  2548.      gestaltNovellIPXVersion = 'NIPX'; {MacIPX version}
  2549.  
  2550.      NOTE:
  2551.      If the selector returns an error (i.e. no such selector?) then MacIPX
  2552.      is not installed. If the selector returns 0 then MacIPX is installed
  2553.      but the driver is not open. Any other value is the version.
  2554.      (Duane Murphy)
  2555. NMBT (Attention cp [0.6] by Marco Piovanelli)
  2556.      gestaltAttentionAddr
  2557.      The response value returned is a pointer to a read-only parameter
  2558.      block in the system heap.
  2559.  
  2560.      const
  2561.      gestaltAttentionAddr = 'NMBT'; {Attention address}
  2562.  
  2563.      NOTE: See for more detailed information the included ReadMe file.
  2564. NTim (Network Time cp [2.0] by Pete Resnick)
  2565.      ???
  2566.      Returns information private to Network Time.
  2567. PNfs (FileSaver [3.0], part of Norton Utilities for Macintosh)
  2568.      Returns a private structure used by various portions of the
  2569.      Norton Utilities.
  2570. PPP  (PPP mdev [???], part of MacPPP by Merit Network, Inc. and the
  2571.       University of Michigan)
  2572.      ???
  2573.      Returns the address of the Lap globals as documented in the header
  2574.      file 'ppp.h.source'. It's an absolutely enormous struct that contains
  2575.      among other things function pointers to let you open and close MacPPP.
  2576.      (Richard Buckle)
  2577.  
  2578.      const
  2579.      ??? = 'PPP ';
  2580.  
  2581.      NOTE:
  2582.      Source code of MacPPP is available at:
  2583.      ftp://merit.edu/pub/ppp/mac/
  2584. PWRS (PwrSwitcher cp [1.0] by David B. Lamkins)
  2585.      gestaltPwrSwitcherTable
  2586.      Returns a pointer to a private data structure (undocumented).
  2587.  
  2588.      const
  2589.      gestaltPwrSwitcherTable = 'PWRS'; {Power Switcher address}
  2590. SAVC (AfterDark cp [2.0] by Berkeley Systems, Inc.)
  2591.      (Basic Black cp [1.3.3] by Mason L. Bliss)
  2592.      (DarkSide of the Macintosh [4.0] by Tom Dowdy)
  2593.      gestaltScreenSaverControl *M05
  2594.      Returns a pointer to a procedure of type
  2595.  
  2596.      typedef pascal OSErr (*SaverControlProcPtr) (SaverCommand command);
  2597.  
  2598.      which allows controlling the screen saver.
  2599.  
  2600.      const
  2601.      gestaltScreenSaverControl = 'SAVC';
  2602.  
  2603.      NOTE:
  2604.      See for more information the AfterDark Gestalt header file (See
  2605.      section 'Related Software' in the 'General Info' chapter for
  2606.      availability)
  2607. SAVR (AfterDark cp [2.0] by Berkeley Systems, Inc.)
  2608.      (Arashi app [???] by Juri Munkki)
  2609.      (Basic Black cp [1.3.3] by Mason L. Bliss)
  2610.      (Coffee Break app [1.0] by Thomas Reed)
  2611.      (DarkSide of the Macintosh [4.0] by Tom Dowdy)
  2612.      gestaltScreenSaverAttr *M05
  2613.      Returns information about the current screen saver. Defined if a
  2614.      screen saver is installed.
  2615.  
  2616.      const
  2617.      gestaltScreenSaverAttr    = 'SAVR'; {Screen saver attributes}
  2618.      gestaltSaverTurnedOn      = 0;      {saver enabled/disabled}
  2619.      gestaltSaverAsleep        = 1;      {saver currently asleep}
  2620.      gestaltSaverDemoMode      = 2;      {saver sleeping in demo mode}
  2621.      gestaltSaverPasswordMode  = 3;      {saver sleeping in password-}
  2622.                                          { protected mode}
  2623.      gestaltAppDrawingDisabled = 4;      {QD drawing disallowed between}
  2624.                                          { module animation frames}
  2625.  
  2626.      NOTE:
  2627.      See for more information the AfterDark Gestalt header file (See
  2628.      section 'Related Software' in the 'General Info' chapter for
  2629.      availability)
  2630. SDdD (Shutdown Delay cp [2.0.1] by Alessandro Levi Montalcini)
  2631.      kSDDelayCreator
  2632.      Returns a pointer to a data structure described in the documentation
  2633.      included with Shutdown Delay.
  2634.  
  2635.      const
  2636.      kSDDelayCreator = 'SDdD';
  2637.  
  2638.      NOTE: The d is actually the option-shift v character (ASCII $D7).
  2639. SHCM (Shared Code Manager ext [1.0] by Eric Schlegel of Microsoft Corp.)
  2640.      gestalt???
  2641.      Returns a pointer to an undocumented entrypoint into the Shared Code
  2642.      Manager.
  2643.  
  2644.      const
  2645.      gestalt??? = 'SHCM';
  2646.  
  2647.      NOTE:
  2648.      The Shared Code Manager (1991) is a simple DLL mechanism that is
  2649.      currently used by Microsoft's Mac OLE 1.0 (Object Linking & Embedding)
  2650.      and the applications that use OLE 1.0. (Eric Schlegel)
  2651. SLip (StuffIt SpaceSaver ext [1.0?] by Aladdin Systems, Inc.)
  2652.      gestaltStuffItSpaceSaverAddr
  2653.      Returns the address of the SpaceSaver "command module" which allows
  2654.      developers to access all the functions of SpaceSaver.
  2655.      (Leonard Rosenthol)
  2656.  
  2657.      const
  2658.      gestaltStuffItSpaceSaverAddr = 'SLip';
  2659. SPAL (SpeakAlert cp [1.0] by Brian Stern)
  2660.      gestaltSpeakAlert
  2661.      Details are private to SpeakAlert.
  2662.  
  2663.      const
  2664.      gestaltSpeakAlert = 'SPAL';
  2665. TExT (FileTyper Menu cp [none], part of FileTyper by Daniel Azuma)
  2666.      gestaltTyperMenuAttr
  2667.      Returns information about the FileTyper Menu's operation.
  2668.  
  2669.      const
  2670.      gestaltTyperMenuAttr = 'TExT';
  2671.      gestalt???           = 0;      {TRUE = NO item added to Finder's}
  2672.                                     { File menu}
  2673.  
  2674.      WARNING:
  2675.      No currently released version of FileTyper Menu (up to and including
  2676.      4.1.1) installs this selector, but future versions may. Check for the
  2677.      existence of this selector first, if you use it. (Daniel Azuma)
  2678. TMON (TMON Pro [3.0] by ICOM Simulations, Inc.)
  2679.      ???
  2680.      The value returned is a pointer to a Monitor information block. *M04
  2681.      (Scott Bronson)
  2682. Typ4 (FileTyper Menu cp [4.1.1], part of FileTyper by Daniel Azuma)
  2683.      gestaltTyperMenuPriv
  2684.      Returns private information, the existence of this selector indicates
  2685.      FileTyper Menu is installed.
  2686.  
  2687.      const
  2688.      gestaltTyperMenuPriv = 'Typ4';
  2689.  
  2690.      NOTE:
  2691.      Third parties can determine if FileTyper Menu is installed by
  2692.      checking for the existence of this selector. However, the actual value
  2693.      returned is private and subject to change. (Daniel Azuma)
  2694. UMAM (Authentication Manager cp [1.0.7] by Robert John Churchill of the
  2695.                                            University of Michigan)
  2696.      gestaltAuthManVersion
  2697.      Returns the version of the Authentication Manager as Double BCD.
  2698.  
  2699.      const
  2700.      gestaltAuthManVersion = 'UMAM';
  2701. YeHa (SpeedyFinder7 cp [1.5.4?] by Victor Tan)
  2702.      ???
  2703.      Returns a pointer to a private data structure (undocumented).
  2704.  
  2705.      NOTE:
  2706.      The structure to which the Gestalt selector refers changes almost
  2707.      invariably from version to version of SF7. Should someone work out
  2708.      parts of the structure of the selector keep in mind that it will
  2709.      almost certainly change in the next minor release and definitely with
  2710.      the next major release. (Victor Tan)
  2711.  
  2712. Unknown Gestalt Selector Codes
  2713. ==============================
  2714. The following sections list selector codes of which the meaning is unknown.
  2715.  
  2716. Apple Software
  2717. --------------
  2718. OSType(7)
  2719.      (System [6.0.4])
  2720.      Returns LongInt('carl') and a result code of noErr.
  2721. OSType(13)
  2722.      (System [6.0.4])
  2723.      Returns LongInt('bbmc') and a result code of noErr.
  2724. 3615 (Express Modem cp [1.0], part of Express Modem Software)
  2725. a pc (PC Setup? cp [1.0?], part of Quadra 610-DOS software)
  2726. admn (AppleShare Admin appl [3.0])
  2727.      gestaltASAdminAttr?
  2728.  
  2729.      const
  2730.      gestaltASAdminAttr?    = 'admn';
  2731.      gestaltASAdminPresent? = 0;
  2732. AgVU (Agent VU ext [2.0?], part of Virtual User)
  2733. afps (AppleShare ext [3.5?], part of System 7.5)
  2734.      Bits 0 and 16 set.
  2735. aint (System? [7.1.1?])
  2736.      NOTE: Returns 2 on a C660AV and Q840AV.
  2737. apml (PowerTalk Manager ext [1.0?], part of PowerTalk)
  2738.      Bit 0 and 31 set.
  2739. aslm (Shared Library Manager ext [1.1.1?])
  2740.      (System? [7.5?])
  2741.      gestaltSharedLibraryMgr?
  2742.      Returns the version of the Shared Library Manager as BCD in high word
  2743.      and information about the SLM in low word?
  2744.  
  2745.      const
  2746.      gestaltSharedLibraryMgr? = 'aslm';
  2747.      gestaltSharedLibrary???  = 0;
  2748.      gestaltSharedLibrary???  = 1;
  2749.  
  2750.      NOTE:
  2751.      This selector appears to be both an attribute and version selector:
  2752.        - the version is BCD in the high word (confirmed in version 1.1.2
  2753.          and 2.0 doesn't contradict this)
  2754.        - the attributes are in the low order word (but I don't know the
  2755.          meanings)
  2756.      (John Mancino)
  2757.  
  2758.      Returns zero when the Shared Library Mgr is not initialized?
  2759.      (Rene Ros)
  2760. asps (AppleShare Print Server appl [3.0])
  2761.      gestaltASPrintServerAttr?
  2762.  
  2763.      const
  2764.      gestaltASPrintServerAttr?    = 'asps';
  2765.      gestaltASPrintServerPresent? = 0;
  2766. AtEa (At Ease Startup [2.0?], part of At Ease for Workgroups)
  2767. bART (MacCheck app [1.0])
  2768. BaRT (MacCheck app [1.0])
  2769. bast (Performa cp [1.1], part of System 7.1P)
  2770. batt (Powerbook Duo Enabler [1.0])
  2771.      (System [7.5])
  2772.      (System Enabler 111 [1.0])
  2773.      (System Enabler 121 [1.0])
  2774.      (System Enabler 131 [1.0])
  2775.      (System Enabler 201 [1.0]))
  2776.      Returns information about the PowerBook battery?
  2777.  
  2778.      The debugger name for the routine which returns the response for this
  2779.      selector is called 'GETTIMELEFT'. But in what units? And what time?
  2780.      I've only seen the value 0, 5 or 6 returned. The GDEF calls the Power
  2781.      Manager (_PMgrOp [$A085 with D0=$00]) to get the info but I can't find
  2782.      which function. (Rene Ros)
  2783. brcn (Screen? cp [1.0?] on Color Classic)
  2784. brcN (Energy Saver cp [1.0?], part of Monitor Energy Saver)
  2785. bugx (System [7.5])
  2786.      (System Update ext [3.0])
  2787.  
  2788.      NOTE:
  2789.      The System Update reserves the 'bugx', â€˜bugy’ and â€˜bugz’ gestalt
  2790.      selectors to indicate which fixes are installed on a given machine.
  2791.      These are for Apple internal use only, and developers should not rely
  2792.      on these. There is no guarantee that they will be supported in future
  2793.      versions of Macintosh system software. *AT06
  2794. bugy (32-bit System Enabler [1.0])
  2795.      (Hardware System Update ext [1.0])
  2796.      (Network Launch Fix ext [1.0])
  2797.      (Sound Manager ext [3.0])
  2798.      (System? [7.1?])
  2799.      (System enabler 065)
  2800.      gestaltEnablerAttr?
  2801.  
  2802.      const
  2803.      gestaltEnablerAttr?                  =  'bugy'; ?
  2804.      gestaltEnablerEgretDispatchPatch?    =  0; {these correct the system}?
  2805.      gestaltEnablerEgretTimePatch?        =  1; { clock and modem perf.}?
  2806.      gestalt???                           =  2; {unknown, Hardware Upd.}
  2807.      gestaltEnablerEgretTickHandlerPatch? =  3; { see bit 0 & 1}?
  2808.      gestalt???                           =  4; {unknown, Hardware Upd.}
  2809.      gestaltEnablerSCSIPatch?             =  5; {floppy drive fixed}?
  2810.      gestalt???                           =  6; {unknown, Hardware Upd.}
  2811.      gestaltEnabler32bit?                 =  7; {32-bit enabler present}?
  2812.      gestalt???                           =  9; {unknown, Sound Mgr 3.0}
  2813.      gestalt???                           = 11; {unknown, Hardware Upd.}
  2814.      gestalt???                           = 12; {unknown, Hardware Upd.}
  2815.      gestalt???                           = 13; {unknown, Hardware Upd.}
  2816.      gestalt???                           = 14; {unknown, Hardware Upd.}
  2817.      gestalt???                           = 15; {unknown, Hardware Upd.}
  2818.      gestalt???                           = 16; {unknown, Hardware Upd.}
  2819.      gestaltEnablerKeyboardPatch?         = 17; {corrects Adjustable Kbd}
  2820.                                                 { gestaltKeyboardType}
  2821.                                                 { response?}
  2822.      gestalt???                           = 18; {unknown, Hardware Upd.}
  2823.      gestalt???                           = 19; {unknown, ???}
  2824.      gestalt???                           = 24; {unknown, ???}
  2825.      gestalt???                           = 25; {unknown, ???}
  2826.      gestalt???                           = 26; {unknown, ???}
  2827.      gestaltNetworkLaunchFix?             = 27; {fix problem with appl. on}
  2828.                                                 { server launch with 68040}
  2829.      gestalt???                           = 28; {unknown, ???}
  2830.      gestalt???                           = 31; {unknown, ???}
  2831.  
  2832.      WARNING:
  2833.      These are ALL guesses. Well not entirely, I used the ResEdit CODE
  2834.      Editor to peek into the 32-bit System Enabler, Hardware System update
  2835.      and other software. Please check if I'am right. You should be able to
  2836.      find some of the answers in the INIT resource of the Hardware Update
  2837.      and the names of the PTCH resources in version 1.0 were also useful...
  2838.      The System Enablers (for new Macintosh models) don't seem to install
  2839.      or change any Gestalt selector to indicate their presence.
  2840.  
  2841.      NOTE:
  2842.      The System Update reserves the 'bugx', â€˜bugy’ and â€˜bugz’ gestalt
  2843.      selectors to indicate which fixes are installed on a given machine.
  2844.      These are for Apple internal use only, and developers should not rely
  2845.      on these. There is no guarantee that they will be supported in future
  2846.      versions of Macintosh system software. *AT06
  2847. bugz (System [7.0]/Tune-up ext)
  2848.  
  2849.      NOTE:
  2850.      The System Update reserves the 'bugx', â€˜bugy’ and â€˜bugz’ gestalt
  2851.      selectors to indicate which fixes are installed on a given machine.
  2852.      These are for Apple internal use only, and developers should not rely
  2853.      on these. There is no guarantee that they will be supported in future
  2854.      versions of Macintosh system software. *AT06
  2855. cate (Catalogs Extension? ext [???], part of PowerTalk)
  2856.      Bit 0 set.
  2857. CDJR (Apple Menu Options cp [1.0], part of System 7.5)
  2858.      (ExtendedAppleMenu [???] by Chris Derossi)
  2859. cfmg (System [7.1.2 on PowerMac])
  2860. clbv (PowerTalk ext [1.0?], part of PowerTalk)
  2861.      Bit 0 set.
  2862. comp (QuickDraw Font Plus ext [???], part of the KanjiTalk 7.1)
  2863.  
  2864.      NOTES:
  2865.      The name "QuickDraw Font Plus" is translated from Japanese and may be
  2866.      translated differently by Apple Computer, Inc.
  2867.  
  2868.      I think 'comp' stands for 'composite', as the INIT contains patches to
  2869.      the Font Manager needed to handle 'composite font suitcases'.
  2870.      (Marco Piovanelli)
  2871. ctxm (???)
  2872. cuda (???, on Performa 630TV)
  2873. ddsk (DropDisk app [1.0b3], formerly Mount'em app by Mike Wise and
  2874.                             Chris Cotton of Apple Computer)
  2875.      Only installed if DropDisk driver is loaded. Looks like the highword
  2876.      contains the version (of driver or application?) as BCD, while the
  2877.      low-word is a mystery.
  2878.      
  2879.      NOTE:
  2880.      See also the 'mtem' selector installed by Mount'em 1.0b1 and 1.0b2.
  2881. detc (???)
  2882. diag (Automated Diagnostics ext [1.0], part of Apple Personal
  2883.                                        Diagnostics 1.0)
  2884. doub (WorldScript II ext [7.2?], part of KanjiTalk7 and
  2885.                                  several language kits)
  2886.      gestaltDoubleByteScriptVersion?
  2887.      Returns the version of WorldScript II as BCD?
  2888.  
  2889.      const
  2890.      gestaltDoubleByteScriptVersion? = 'doub';
  2891.  
  2892.      NOTE:
  2893.      This selector seems to be installed by WorldScript II (the
  2894.      System 7.1 ext needed to handle double-byte scripts like Japanese,
  2895.      Korean and Traditional Chinese). Known returned value is $0x0710.
  2896.      (Marco Piovanelli)
  2897. dude (Powerbook Duo Enabler [1.0])
  2898.      (System [7.5])
  2899.      (System Enabler 111 [1.0])
  2900.      (System Enabler 121 [1.0])
  2901.      (System Enabler 131 [1.0])
  2902.      (System Enabler 201 [1.0]))
  2903. dudi (Powerbook Duo Enabler [1.0])
  2904.      (System [7.5])
  2905.      (System Enabler 111 [1.0])
  2906.      (System Enabler 121 [1.0])
  2907.      (System Enabler 131 [1.0])
  2908.      (System Enabler 201 [1.0]))
  2909. fdbk (Speech Setup cp? [???], part of PlainTalk)
  2910. fdrs (Finder [7.1.1b1?], part of AOCE Developer's Kit)
  2911.      Installed by Finder extension?
  2912. fnda (Finder [7.1.1])
  2913.      NOTE: The a is actually the option-a character (ASCII $8C).
  2914. fnd& (Finder?, System? [7.1.2 on PowerMac?])
  2915.      NOTE: The & is actually the option-shift-a character (ASCII $E5).
  2916. fnd* (Finder [7.1.1])
  2917.      NOTE: The * is actually the shift-6 character (ASCII $F6).
  2918. fnd? (Finder [7.1.1b1?], part of AOCE Developer's Kit)
  2919.      Installed by Finder extension?
  2920. fnd  (Finder [7.1.1b1?], part of AOCE Developer's Kit)
  2921.      Installed by Finder extension?
  2922. fndc (Finder [7.1.1])
  2923. fndn (Finder?, System? [7.1.2 on PowerMac?])
  2924.      NOTE: The n is actually an option-n, n (ASCII $96).
  2925. FNDR (Finder [7.1.1b1?], part of AOCE Developer's Kit)
  2926.      Installed by Finder extension?
  2927. futr (ThreadsINIT ext [2.0?], part of Threads Package)
  2928. gFax (Fax Extension ext [1.1?], part of Express Modem Software)
  2929. gntz (System [7.1.2 on PowerMac])
  2930. gpad (System? [7.5?])
  2931. gprf (System? [7.5?])
  2932. HAM  (Apple Menu Options cp [1.0], part of System 7.5)
  2933.      (HAM ??? [???] by Inline Design)
  2934. harp (PowerBook cp? [7.2?])
  2935. hcsl (Finder [7.1.1b1?], part of AOCE Developer's Kit)
  2936. heap (System [7.1.2 on PowerMac])
  2937.      Bits 1 and 5 set.
  2938. hgfd (AppleShare File Server appl [3.0])
  2939.      gestaltASFileServerAttr?
  2940.  
  2941.      const
  2942.      gestaltASFileServerAttr?    = 'hgfd';
  2943.      gestaltASFileServerPresent? = 0;
  2944. HrIt (HearIt cp [1.0])
  2945. iadj (System? [7.1.2?] with PowerTalk?)
  2946.      (Display Enabler ext, Icon relocation INIT ID#3 [1.0])
  2947. idsp (System? [7.1?] on Macs with sound input?)
  2948.      Values found: $FFFF FFFF, $0x000C, $0x0000
  2949. iic  (???, on Performa 630TV)
  2950. immg (??? [???] on PowerBook 520/540? and Performa 630TV)
  2951. intD (??? [???])
  2952.  
  2953.      NOTE:
  2954.      This is a mystery selector.  It isn't installed by any software, as
  2955.      far as I know, but the Finder 7.1 checks for this selector in certain
  2956.      situations. (Marco Piovanelli)
  2957. jkbd (??? (Japanese!) ext [1.0], part of KanjiTalk)
  2958. lang (WorldScript II ? ext [7.2?], part of KanjiTalk7 and
  2959.                                    several language kits)
  2960.      gestalt???Attr
  2961.      Returns information about the Language Manager?
  2962.  
  2963.      const
  2964.      gestaltLanguageMgrAttr = 'lang';
  2965.      gestaltLanguageMgr???  = 0;
  2966. ldap (???)
  2967. lngb (WorldScript II ? ext [7.2?], part of KanjiTalk7 and
  2968.                                    several language kits)
  2969.      Value found: $00001FFF.
  2970. lstk (Speech Setup cp? [???], part of PlainTalk)
  2971. ltma (Link Tool Manager ext [2.0?], part of Apple Remote Access 2.0)
  2972.      gestaltLinkToolVersion?
  2973.      Returns the version of the Link Tool Manager as NumVersion?
  2974.  
  2975.      const
  2976.      gestaltLinkToolVersion? = 'ltma';
  2977.  
  2978.      NOTE:
  2979.      The only value I've seen returned was $02002008, which would mean
  2980.      '2.0d8' which was not correct since the 'vers' recource said '2.0f0'.
  2981.      The value is hardcoded in the .LTM Driver resource. (Rene Ros)
  2982. mash (System [7.1P?]/At Ease [1.0?])
  2983.  
  2984.      NOTE:
  2985.      The Starter cp (part of System 7.1P) and Launcher cp (part of
  2986.      System 7.5) both contain a 'mash' resource and includes a template for
  2987.      it. Can this be the same data-structure? (Rene Ros)
  2988. mbox (Mailbox Extension? ext [???], part of PowerTalk?)
  2989.      gestaltMailboxVersion?
  2990.      Returns version of Mailbox software as INTEGER.
  2991.      
  2992.      const
  2993.      gestaltMailboxVersion? = 'mbox';
  2994. MClk (Date & Time cp [7.5], part of System 7.5)
  2995.      (SuperClock! cp [4.0] by Steve Christensen)
  2996. mfdr (At Ease [1.0])
  2997. mjik (MenuMagic ext [1.0], part of System 7.1 Pro and 7.5)
  2998. mtem (Mount'em app [1.0b1-1.0b2] by Mike Wise and Chris Cotton of
  2999.                                     Apple Computer)
  3000.      See the 'ddsk' selector installed by DropDisk 1.0b3 and later.
  3001. mtv! (TV Setup cp [1.0], part of System for Macintosh TV?)
  3002.  
  3003.      NOTE:
  3004.      Not seen installed, disassembled control panel, meaning unknown.
  3005.      It's probably an address. (Rene Ros)
  3006. NubA (Debugger INIT ext [1.0] distributed with MetroWerks CodeWarrior)
  3007. NubD (Debugger INIT ext [1.0] distributed with MetroWerks CodeWarrior)
  3008. NubH (Debugger INIT ext [1.0] distributed with MetroWerks CodeWarrior)
  3009. NubV (Debugger INIT ext [1.0] distributed with MetroWerks CodeWarrior)
  3010. octb (System? [7.5?] on PowerBook 520/540?)
  3011. ot   (??? [???])
  3012.      gestaltOpenTransportAttr?
  3013.      Returns information about the Open Transport software?
  3014.  
  3015.      const
  3016.      gestaltOpenTransportAttr?    = 'ot  ';
  3017.      gestaltOpenTransportPresent? = 0;
  3018. PhoN (PowerBook Setup cp [7.3.1?], PhoneINIT INIT resource)
  3019. port (Powerbook Duo Enabler [1.0])
  3020.      (System [7.5])
  3021.      (System Enabler 111 [1.0])
  3022.      (System Enabler 121 [1.0])
  3023.      (System Enabler 131 [1.0])
  3024.      (System Enabler 201 [1.0])
  3025.      gestaltPortAttr?
  3026.      Returns information about the ports?
  3027.  
  3028.      const
  3029.      gestaltPortAttr?           = 'port';
  3030.      gestaltHasInternalModem?   = 0?;
  3031.      gestaltHasExternalPrinter? = 1?;
  3032.      gestaltHasExternalModem?   = 2?;
  3033.  
  3034.      NOTE:
  3035.      System Enabler 201 and PowerBook Duo enabler contain an GDEF resource
  3036.      which indicates bits 0, 1 and 2 can be set. (Rene Ros)
  3037. ppad (Performa cp [1.1], part of System 7.1P)
  3038. pprf (Performa cp [1.1], part of System 7.1P)
  3039. ptlk (Speech Setup cp? [???], part of PlainTalk)
  3040. pxtn (At Ease app [2.0?])
  3041. Remt (AutoRemounter cp [???])
  3042. scrf (System? [7.5?])
  3043. serh (System? [7.1.2?])
  3044.      gestaltSerialHardware?
  3045.      Returns type of hardware used for serial I/O?
  3046.  
  3047.      const
  3048.      gestaltSerialHardware? = 'serh'; {Serial Hardware}
  3049.      gestaltClassicSer?     = 'Clas'; {returned on PPC 8100/80 (GeoPort?)}
  3050. shal (System [7.1?])
  3051.  
  3052.      NOTE: Returns 2 on PowerMac and 1 on Centris 660AV
  3053. slnk (MNPLinkTool? [1.0], part of Apple Remote Access)
  3054. sndx (Sound Manager ext [3.0]?)
  3055.      gestaltSoundMgrAttr?
  3056.  
  3057.      const
  3058.      gestaltSoundMgrAttr?    = 'sndx'?;
  3059.      gestaltSoundMgrPresent? = 0?
  3060. thng (ThreadsINIT ext [2.0?], part of Threads Package)
  3061. thrd (ThreadsINIT ext [2.0?], part of Threads Package)
  3062. udsk (System [7.1.2 on PowerMac])
  3063. udsv (System [7.1.2 on PowerMac])
  3064. vdrc (PC Exchange? cp [1.0?])
  3065. vmbs (System [7.0])
  3066.      (RAM Doubler [1.0] by Connectix Corporation)
  3067.      gestaltVMBackingStoreRef?
  3068.      Returns the file reference number of the Virtual Memory storage file
  3069.      if VM is present.
  3070.  
  3071.      const
  3072.      gestaltVMBackingStoreRef? = 'vmbs';
  3073. vmcl (System, VM on [7.0])
  3074. vmem (RAM Doubler [1.0] by Connectix Corporation)
  3075.      gestaltVMExtensionMgr?
  3076.      Returns type of software used to extend the Virtual Memory Mgr?
  3077.  
  3078.      const
  3079.      gestaltVMExtensionMgr? = 'vmem';
  3080.      gestaltRAMDoubler?     = 'RaM2';
  3081.  
  3082.      NOTE: See 'Reports' chapter (RAMDoubler section) for more information.
  3083.  
  3084. Third Parties Software
  3085. ----------------------
  3086. *DC* (DepthCharge cp [???] by Maf Vosburgh)
  3087. AClk (AutoClock Extension ext [1.3?] by Jean-Pierre Gachen)
  3088. ADex (AfterDark [2.0?] by Berkeley Systems, Inc.)
  3089. ADii (AfterDark [2.0?] by Berkeley Systems, Inc.)
  3090.  
  3091.      NOTE:
  3092.      Not installed by AfterDark but the GDEF indicates it is able to return
  3093.      a response.
  3094. ADr2 (AfterDark [2.0?] by Berkeley Systems, Inc.)
  3095.  
  3096.      NOTE:
  3097.      Not installed by AfterDark but the GDEF indicates it is able to return
  3098.      a response.
  3099. ADRC (DDExpand appl [3.7.7?] by Fifth Generation Systems)
  3100. ADTK (Talk*Control cp [???] by 2Way Computing, Inc.)
  3101. AP00..AP06
  3102.      (RapidLock cp or RapidTrak cp [1.1], part of RapidTrak software by
  3103.       Insignia Solutions Inc.)
  3104.      It seems these selectors are installed for each harddisk connected to
  3105.      your Macintosh. The last two bytes of the selector are the SCSI ID.
  3106.      Although the third byte can mean something else, because perhaps
  3107.      'AP17' (listed below) is probably also installed by
  3108.      RapidLock/RapidTrack.
  3109. AP17 (???)
  3110. ApWi (ApplWindows cp [2.0?] by Hiro Yamamoto)
  3111. ASTN (Asante EN/SC ext [???] by Asante Technologies, Inc.)
  3112. aYmm (AfterDark [2.0?] by Berkeley Systems, Inc.)
  3113. AzNe (NameView cp [2.7?] by AStar Technologies, Inc.)
  3114. A–Tr (Trapper ext [1.0?] by Alessandro Levi Montalcini)
  3115. Blad (Blood cp [1.0.1?] by Alessandro Levi Montalcini)
  3116.      NOTES:
  3117.      The B is actually the option-s character (ASCII $A7).
  3118.      The d is actually the option-d character (ASCII $B6).
  3119. bMRN (Super Boomerang cp [4.0?], part of NOW Utilities 4.0.1p package
  3120.       by NOW Software)
  3121. CDmn (CDMenu cp [1.0?] by Henrik Eliasson)
  3122. CHSR (ChooserUser [1.2?] by Maurice Volaski)
  3123. CiCN (Color ICON Mania cp [1.0] by Yosuke Suzuki)
  3124. DanS (PowerClick cp [1.0] by Daniel A. Segel)
  3125. DCDt (NoDesktopCleanup cp [1.0?] by Alessandro Levi Montalcini)
  3126. DCKc (Keys! cp [1.0] by Stefan Kurth)
  3127.  
  3128.      NOTE: The lowercase c is actually the control-q (Command key sign)
  3129.      character (ASCII $11).
  3130. DD37 (DiskDoubler [3.7] by Fifth Generation Systems, Inc.)
  3131. DDAD (AutoDoubler cp [1.0?] by Fifth Generation Systems, Inc.)
  3132. DFlh (DiskFlash cp [1.0], part of ALSoft Power Utilities by ALSoft, Inc.)
  3133. DlgV (Dialog View cp [2.11], formerly List Font cp by James W. Walker)
  3134.      See also 'LFnt'.
  3135. Dpth (DepthMaster cp [1.0] by Victor Tan)
  3136. DWG! (Volume Menu cp [1.0] by David Gladstone, Chris Burns, Julian Harris)
  3137. EDCN (PPPReport cp [1.0b3?] by Eric de la Musse)
  3138. EM20 (Extensions Manager cp [2.0] by Ricardo Batista)
  3139. ESCa (Escapade cp [1.0?] by Christopher R. Wysocki)
  3140. ESOC (Serial of Champions ext [???] by Mike Throckmorton)
  3141. Extn (NOW Startup Manager cp [4.0?], part of NOW Utilities 4.0.1p package
  3142.       by NOW Software)
  3143. Fie  (Icon7 ext [???] by Inline Designs)
  3144.      gestaltIcon7?
  3145. fPth (FinderPaths cp? [???])
  3146.  
  3147.      NOTE: The f is actually the option-f character (ASCII $C4).
  3148. fmci (FinderMenu INIT ext [1.0], part of UserLand's Frontier Runtime
  3149.       package)
  3150. FtCg (FontPatchin cp [2.0?] by Keisuke Hara)
  3151. FW14 (FileWave Administrator ext [2.0?], part of FileWave 2.0
  3152.       by Wave Research)
  3153. FWCP (File Tracker Controls cp [1.0] by Mark Aiken)
  3154. fWmM (Super Boomerang cp [4.0?], part of NOW Utilities 4.0.1p package
  3155.       by NOW Software)
  3156. GrEG (Greg's Buttons ext [3.1.4?] by Greg Landweber)
  3157. GtOp (MenuExtend cp [1.0], part of ALSoft Power Utilities by ALSoft, Inc.)
  3158. gV00 (PowerPort cp? [???])
  3159. gV01 (PowerPort cp? [???])
  3160. gV02 (PowerPort cp? [???])
  3161. gV03 (PowerPort cp? [???])
  3162. gV04 (PowerPort cp? [???])
  3163. He20 (Helium cp [1.0?] by Robert L. Mathews)
  3164. HEID (Incognito cp [1.0?] by Manuel Veloso)
  3165. HPBG (HP Background ext [3.0?] by Hewlett-Packard Company)
  3166.      GDEF always returns value 1.
  3167. HtLk (Reference Link ext [1.0] by James W. Walker)
  3168. iHnd (Invisible Hand cp [1.0] by Carl Mauer)
  3169.  
  3170.      NOTE:
  3171.      Because this cp patches the _Random trap you can use this selector to
  3172.      determine its presence and refuse to continue.
  3173. Intj (Interjection ext [???])
  3174. JAiN (Rival cp by Inline Designs)
  3175.      gestaltRival
  3176.  
  3177.      NOTE: The i is actually the option-u/i character (ASCII $95).
  3178. jsm1 (???)
  3179. JXNM (NowMenus cp [4.0?], part of NOW Utilities 4.0.1p package
  3180.       by NOW Software)
  3181. KBCF (Easy KEYS cp [1.5] by Kerry Clendinning)
  3182. KBCM (???)
  3183. KQae (KQ Apple Events ext [???], part of KeyQuencer
  3184.                                  by Alessandro Levi Montalcini)
  3185. KQue (KeyQuencer cp [???], part of KeyQuencer
  3186.                            by Alessandro Levi Montalcini)
  3187. LFnt (Dialog View cp [???], formerly List Font cp by James W. Walker)
  3188.      See also 'DlgV'.
  3189. LNCH (Talk*Control cp [???] by 2Way Computing, Inc.)
  3190. LxRZ (Retro.SCSI? ext [2.0?], part of Retrospect by Dantz Development
  3191.       Corporation)
  3192.      (Remote? cp [2.0?], part of Retrospect by Dantz Development
  3193.       Corporation)
  3194. Mgc! (Wizard INIT ext [1.0], part of Disk Wizard by Francois Pottier)
  3195. MJC& (AutoMenus II cp [???] by Michael Conrad)
  3196. MV10 (TearOFF cp [???] by Bad Boys' Software)
  3197. nOAg (??? cp [1.2?], part of netOctopus by Pole Position)
  3198. nOAv (??? cp [1.2?], part of netOctopus by Pole Position)
  3199.      Returns version as NumVersion?
  3200. NGst (NokNok cp [1.0?])
  3201. NkNk (NokNok cp [1.0?])
  3202. NowT (NOW Toolbox ext [4.0?], part of NOW Utilities 4.0.1p package,
  3203.       by NOW Software)
  3204. PBUf (???)
  3205. PBUt (???)
  3206. PRT+ (PrintAid [0.9?] by James W. Walker)
  3207. PtrP (PrintPatrol [1.0] by Randy DeRuiter and John Champion)
  3208. QRef (QuickRef ext? [1.0] by Scott Bronson)
  3209. ReSp (File Tracker Controls cp [1.0] by Mark Aiken)
  3210. RQDC (DropCheck cp [???] by Ronald B. Queloz)
  3211. SCTR (FaxMonitor ext [1.6?], part of FAXcilitate by PSI)
  3212. SDIT (???)
  3213. SEcl (ScreenEclipse cp [1.0], part of ALSoft Power Utilities by
  3214.       ALSoft, Inc.)
  3215. SFun (SF Windows [1.0] by Damon Cokenias)
  3216. SFwd (Open-wide cp [3.0?] by James W. Walker)
  3217. SLi2 (StuffIt SpaceSaver ext by Aladdin Systems, Inc. ?)
  3218. SNIT (Snitch ext [1.0] by Mitch Jones)
  3219. SPLO (SpigotVDIG ext [1.0] by SuperMac Technology)
  3220. ST20 (Snap-To cp [2.0?] by Trevden Sherzell)
  3221. STYH (StayHere! cp [2.0?] by Nobuhiro Miyatake)
  3222. TgrX (Xmas Lights cp [1.0] by Tiger Technologies)
  3223. Tmon (TMON Pro cp? [3.0] by ICOM Simulations)
  3224. UhOh (SpeedyFinder7 Extension ext [1.5.9h], part of SpeedyFinder7
  3225.                                             by Victor Tan)
  3226. UlOn (UndelineEnabler ext [2.0?], part of FontPachin package by
  3227.       Keisuke Hara)
  3228.      See also FtCg selector.
  3229. View (StuffIt Viewer Engine [???] by Aladdin Systems Inc.)
  3230.      gestaltViewerEngine
  3231.      The gestalt selector is not installed until someone (StuffIt) invokes
  3232.      the engine.
  3233. vmFn (RAM Doubler [1.0] by Connectix Corporation)
  3234.      Seems to return a memory address, perhaps to a function to control
  3235.      Virtual Memory?
  3236.  
  3237.      NOTE: See 'Reports' chapter (RAMDoubler section) for more information.
  3238. WARE (???)
  3239. WREO (Replace Existing Options cp [???] by Jonathon Summers)
  3240.  
  3241.      NOTE: The W is actually the option-w character (ASCII $B7).
  3242. Wttf (TeachText7.0 Font ext [???] by Jonathon Summers)
  3243.  
  3244.      NOTE: The W is actually the option-w character (ASCII $B7).
  3245. *Men (OtherMenu ext [1.0] by James W. Walker)
  3246.  
  3247. Gestalt Manager Calls
  3248. =====================
  3249. All standard calls to the _Gestalt or _GestaltValueDispatch trap are listed
  3250. in this chapter.
  3251.  
  3252. Gestalt Manager Routines
  3253. ------------------------
  3254. The CallSelectorFunctionProc and NewSelectorFunctionProc functions were
  3255. listed in the GestaltEqu.h file on E.T.O. #12 CD-ROM but not yet fully
  3256. documented.
  3257.  
  3258. FUNCTION Gestalt (selector: OSType; VAR response: LongInt): OSErr;
  3259.      Available since System 6.0.4.
  3260.      Trap Macro
  3261.        _Gestalt ($A1AD)
  3262.      Registers on entry   D0: selector code
  3263.      Registers on exit    A0: response
  3264.                           D0: result code
  3265.      Result codes
  3266.        noErr                       0 No error
  3267.        gestaltUnknownErr       -5550 Could not obtain the response
  3268.        gestaltUndefSelectorErr -5551 Undefined selector
  3269. FUNCTION NewGestalt (selector: OSType; selectorfunction: ProcPtr): OSErr
  3270.      Available since System 6.0.4.
  3271.      Trap Macro
  3272.        _NewGestalt ($A3AD)
  3273.      Registers on entry   A0: address of new selector function
  3274.                           D0: selector code
  3275.      Registers on exit    D0: result code
  3276.      Result codes
  3277.        noErr                       0 No error
  3278.        memFullErr               -108 Ran out of memory
  3279.        gestaltDupSelectorErr   -5552 Selector already exists
  3280.        gestaltLocationErr      -5553 Function not in system heap
  3281. FUNCTION ReplaceGestalt (selector: OSType; selectorfunction: ProcPtr;
  3282.                          VAR oldGestaltFunction: ProcPtr): OSErr;
  3283.      Available since System 6.0.4.
  3284.      Trap Macro 
  3285.        _ReplaceGestalt ($A5AD)
  3286.      Registers on entry   A0: address of new selector function
  3287.                           D0: selector code
  3288.      Registers on exit    A0: address of old selector function
  3289.                           D0: result code
  3290.      Result codes
  3291.        noErr                       0 No error
  3292.        gestaltUndefSelectorErr -5551 Undefined selector
  3293.        gestaltLocationErr      -5553 Function not in system heap
  3294. #define CallSelectorFunctionProc(userRoutine, selector, response)  \
  3295.         (*userRoutine)(selector, response)
  3296.      Trap Macro 
  3297.        ??? (???)
  3298.      Registers on entry   ???
  3299.      Registers on exit    ???
  3300.      Result codes
  3301.        noErr                       0 No error
  3302.        ???                       ??? ???
  3303. #define NewSelectorFunctionProc(userRoutine)  \
  3304.         (SelectorFunctionUPP)(userRoutine)
  3305.      Trap Macro 
  3306.        ??? (???)
  3307.      Registers on entry   ???
  3308.      Registers on exit    ???
  3309.      Result codes
  3310.        noErr                       0 No error
  3311.        ???                       ??? ???
  3312.          
  3313. Undocumented Gestalt Manager Routines
  3314. -------------------------------------
  3315. FUNCTION? GestaltDispatch? (???):OSErr;?
  3316.      Trap Macro
  3317.        _GestaltDispatch ($A0AD)
  3318.      Registers on entry   ???
  3319.      Registers on exit    ???
  3320.      Result codes
  3321.        noErr                       0 No error
  3322.        ???
  3323.  
  3324.      NOTE:
  3325.      Found in the MPW, THINK C and THINK Pascal Traps Interface file
  3326.      on 'Bookmark CD 14'.
  3327.      Available since System 6.0.4 but code will always return error -50
  3328.      (paramErr). (Lawrence D'Oliveiro, Rene Ros)
  3329. FUNCTION? GetGestaltProcPtr? (selector?: OSType;
  3330.                               var selectorfunction: ProcPtr): OSErr;?
  3331.      Trap Macro
  3332.        _GetGestaltProcPtr ($A7AD)
  3333.      Registers on entry   D0: selector code?
  3334.      Registers on exit    ??: address of selector function
  3335.      Result codes
  3336.        noErr                       0 No error
  3337.        ???
  3338.  
  3339.      NOTE:
  3340.      Found in the MPW Traps Interface file on 'Bookmark CD 14'.
  3341.      Available since System 6.0.4 but code will always return error -50
  3342.      (paramErr). (Lawrence D'Oliveiro, Rene Ros)
  3343.      I (Rene Ros) have written Pascal code to do what this system call
  3344.      probably is planned to do in the future.
  3345.  
  3346. Gestalt Value Routines
  3347. ----------------------
  3348. Please note the GestaltValue routines can be invoked through a library,
  3349. but since System 7.5 the GestaltValue routines are also part of the OS.
  3350. The GestaltValue routines are stack based and don't use registers.
  3351. The GestaltValue library first checks to see if trap $ABF1 is implemented
  3352. (System 7.5 and later). If trap $ABF1 is implemented, all calls to the
  3353. library are routed to this trap, otherwise the library uses embedded code.
  3354. Several Apple System selectors use the GestaltValueDispatch A-trap to
  3355. install the response value starting with System 7.5.
  3356.  
  3357. WARNING:
  3358. The GestaltValue library distributed originally checks for the wrong trap
  3359. (_ThreadDispatch, $ABF2). Make sure your software doesn't crash when this
  3360. trap is installed by the Thread Manager extension. See the Related Software
  3361. section in the 'General Info' chapter for availability.
  3362. (Most info about the GestaltValue functions was provided by
  3363. Marco Piovanelli and Dave Radcliffe).
  3364.  
  3365. FUNCTION NewGestaltValue (selector: OSType; newValue: LongInt): OSErr;
  3366.      Available as library and since System 7.5.
  3367.      Trap Macro                      Selector
  3368.        _GestaltValueDispatch ($ABF1) $0401
  3369.      Result codes
  3370.        noErr                       0 No error
  3371.        unimpErr                   -4 Unimplemented core routine
  3372.        memFullErr               -108 Ran out of memory
  3373.        (and other memory errors)
  3374.        gestaltDupSelectorErr   -5552 Selector already exists
  3375. FUNCTION ReplaceGestaltValue (selector: OSType;
  3376.                               replacementValue: LongInt): OSErr;
  3377.      Available as library and since System 7.5.
  3378.      Trap Macro                      Selector
  3379.        _GestaltValueDispatch ($ABF1) $0402
  3380.      Result codes
  3381.        noErr                       0 No error
  3382.        unimpErr                   -4 Unimplemented core routine
  3383.        memFullErr               -108 Ran out of memory
  3384.        (and other memory errors)
  3385.        gestaltUndefSelectorErr -5551 Undefined selector
  3386. FUNCTION DeleteGestaltValue (selector: OSType): OSErr;
  3387.      Available as library and since System 7.5.
  3388.      Trap Macro                      Selector
  3389.        _GestaltValueDispatch ($ABF1) $0203
  3390.      Result codes
  3391.        noErr                       0 No error
  3392.        unimpErr                   -4 Unimplemented core routine
  3393.        gestaltUndefSelectorErr -5551 Undefined selector
  3394. FUNCTION SetGestaltValue (selector: OSType; newValue: LongInt): OSErr;
  3395.      Available since System 7.5?
  3396.      Trap Macro                      Selector
  3397.        _GestaltValueDispatch ($ABF1) $0404
  3398.      Result codes
  3399.        noErr                       0 No error
  3400.        ???
  3401.  
  3402. Kilo-liners
  3403. ===========
  3404. This chapter will list very small pieces of code which are related to
  3405. any Gestalt Routine.
  3406.  
  3407. Direct Gestalt Calls
  3408. --------------------
  3409. You can use the following code to call directly the Gestalt, NewGestalt and
  3410. ReplaceGestalt traps. In that way the (large) glue code will not be
  3411. installed by your compiler. (Contributions by Lawrence D'Oliveiro and
  3412. Marco Piovanelli).
  3413.  
  3414. FUNCTION Gestalt (selector: OSType; VAR response: LongInt): OSErr;
  3415.    inline $225F, $201F, $A1AD, $2288, $3E80;
  3416.       { move.l (sp)+, a1 }
  3417.       { move.l (sp)+, d0 }
  3418.       { _Gestalt }
  3419.       { move.l a0, (a1) }
  3420.       { move.w d0, (sp) }
  3421.  
  3422. FUNCTION NewGestalt (selector: OSType;
  3423.                      gestaltFunction: ProcPtr): OSErr;
  3424.    inline $205F, $201F, $A3AD, $3E80;
  3425.       { move.l (sp)+, a0 }
  3426.       { move.l (sp)+, d0 }
  3427.       { _NewGestalt }
  3428.       { move.w d0, (sp) }
  3429.  
  3430. FUNCTION ReplaceGestalt (selector: OSType;
  3431.                          gestaltFunction: ProcPtr;
  3432.                          VAR oldGestaltFunction: ProcPtr): OSErr;
  3433.    inline $225F, $205F, $201F, $A5AD, $2288, $3E80;
  3434.       { move.l (sp)+, a1 }
  3435.       { move.l (sp)+, a0 }
  3436.       { move.l (sp)+, d0 }
  3437.       { _ReplaceGestalt }
  3438.       { move.l a0, (a1) }
  3439.       { move.w d0, (sp) }
  3440.  
  3441. Direct GestaltValue Calls
  3442. -------------------------
  3443. You can use the following code to call directly the NewGestaltValue,
  3444. ReplaceGestaltValue and DeleteGestaltValue when the _GestaltValueDispatch
  3445. trap is available. *AS04
  3446.  
  3447. FUNCTION NewGestaltValue(selector: OSType, newValue: LongInt): OSErr;
  3448.    inline $303C, $0401, $ABF1;
  3449.  
  3450. FUNCTION ReplaceGestaltValue(selector: OSType,
  3451.                              replacementValue: LongInt): OSErr;
  3452.    inline $303C, $0402, $ABF1;
  3453.      
  3454. FUNCTION DeleteGestaltValue(selector: OSType): OSErr;
  3455.    inline $303C, $0203, $ABF1;
  3456.  
  3457. FUNCTION SetGestaltValue (selector: OSType; newValue: LongInt): OSErr;
  3458.    inline $303C, $0404, $ABF1;
  3459.  
  3460. GestaltSelectorZero
  3461. -------------------
  3462. With all the selectors that are supposed to return non-zero values if
  3463. installed, it may be helpful to have an utility routine that returns a zero
  3464. value (instead of an error) if a selector isn't installed. It's short and
  3465. sweet because it makes a direct call to the _Gestalt trap; of course this
  3466. means you can't use it on systems earlier than 6.0.4.
  3467. (Contributed by Lawrence D'Oliveiro)
  3468.  
  3469. FUNCTION GestaltSelectorZero (Selector: OSType): LongInt;
  3470. {returns the value of the specified Gestalt selector,}
  3471. {or zero if unknown.}
  3472.    inline $201F, $A1AD, $6702, $91C8, $2E88;
  3473.       { move.l (sp)+, d0 }
  3474.       { _Gestalt }
  3475.       { beq.s @2 }
  3476.       { sub.l a0, a0 }
  3477.       { @2: move.l a0, (sp) }
  3478.  
  3479. GestaltBitTest
  3480. --------------
  3481. The GestaltBitTest is a piece of inline assembly code which tests if the
  3482. specified bit is set in the value from the specified Gestalt selector
  3483. (false if the Gestalt call returns an error).
  3484.  
  3485. Example:
  3486.     GestaltBitTest(gestaltAppleEventsAttr, gestaltAppleEventsPresent)
  3487.  
  3488. (Contributed by Lawrence D'Oliveiro)
  3489.  
  3490. FUNCTION GestaltBitTest(Selector: OSType; BitNr: Integer): Boolean;
  3491.    inline
  3492.       $321F, $201F, $A1AD, $6702, $91C8, $2008, $0300, $56C0, $4400, $1E80
  3493.       { move.w (sp)+, d1 }
  3494.       { move.l (sp)+, d0 }
  3495.       { _Gestalt }
  3496.       { beq.s @2 }
  3497.       { sub.l a0, a0 }
  3498.       { @2: move.l a0, d0 }
  3499.       { btst d1, d0 }
  3500.       { sne.b d0 }
  3501.       { neg.b d0 }
  3502.       { move.b d0, (sp) }
  3503.  
  3504. Call Gestalt Function Direct
  3505. ----------------------------
  3506. Suppose you have just loaded an GDEF resource, or replaced one and keep the
  3507. original around and store a pointer to it somewhere private. Suppose next,
  3508. you want to call it to obtain a response without using yet another selector.
  3509. Thats what the following inline code is useful for. Just pass it the
  3510. usual selector and result parameters but also a pointer to the GDEF
  3511. (Lock it if it's a relocatable block).
  3512.  
  3513. FUNCTION CallGestaltDEF (selector: OSType;
  3514.                          var result: LongInt;
  3515.                          aRoutine: ProcPtr): OSErr;
  3516.     inline $205F, $4E90;
  3517.        { move.l (sp)+, a0 }
  3518.        { jsr (a0) }
  3519.  
  3520. Reports
  3521. =======
  3522. When someone reports some findings involving several selectors and/or a
  3523. report is too long to include with the selector entry above, that report
  3524. is listed here. They should be as short as possible with the maximum
  3525. amount of information.
  3526.  
  3527. AppleShare File & Print Server selector codes
  3528. ---------------------------------------------
  3529. The selectors are defined when the application has run. If it is still
  3530. running (or wasn't properly quit) the response is one. When the application
  3531. has properly quit the response is zero.
  3532.      admn AppleShare Admin
  3533.      asps AppleShare Print Server
  3534.      hgfd AppleShare File Server
  3535. (these three are undocumented)
  3536.  
  3537. AppleTalk
  3538. ---------
  3539. With the release of the System 7 Tuner product, AppleTalk will not be
  3540. loaded at startup, if prior to the previous shutdown AppleTalk was turned
  3541. off in the Chooser. Under this circumstance, the 'atkv' selector is not
  3542. available. If the 'atkv' selector is not available under System 7, this is
  3543. an indicator that AppleTalk cannot be turned on without doing so in the
  3544. Chooser and rebooting the system. *AT02
  3545.  
  3546. Copy protection using Gestalt
  3547. -----------------------------
  3548. In Develop 17 Brigham Stevens suggests to use Gestalt and FindFolder as a
  3549. way to implement copy protection in the most compatible way possible.
  3550. By determining several characteristics at installation from the Gestalt Mgr
  3551. and the DirID of the System Folder with FindFolder you can check for this
  3552. info later. When is has changed you can then ask for the serial number
  3553. or a password again. (Rene Ros)
  3554.  
  3555. Environs & SysEnvirons
  3556. ----------------------
  3557. Using Macsbug it is very easy to determine that the SysEnvirons function
  3558. uses the Gestalt Manager to fill the fields of the system environment
  3559. record. So, when you install your own gestalt definitions by using the
  3560. ReplaceGestalt function this will also change the information returned
  3561. by SysEnvirons.
  3562. The older Environs function doesn't use the Gestalt Mgr and the code
  3563. seems to look only at two values in ROM. (Rene Ros)
  3564.  
  3565. Executor Mac-emulator
  3566. ---------------------
  3567. Executor is a Macintosh Emulator for DOS machines, published by
  3568. Abacus Research and Development, Inc. (1993/1994). The Gestalt Manager is
  3569. also emulated and the version I have seen (on a 486DX) says it's a MacPlus
  3570. with a 68LC040 processor with MMU. The 'sysv' selector returns 0x607 but
  3571. it also lists a lot of selectors usually not installed by 6.0.7. Like
  3572. the 'edtn' and 'stdf' selectors. For those it then simply returns zero.
  3573. Strangely enough the 'tabl' selector is not installed, but this doesn't
  3574. confuse the Gestalt! application! (Rene Ros)
  3575.  
  3576. Gestalt Apple Event
  3577. -------------------
  3578. The scriptable Finder (with System 7 Pro and later) supports an Apple Event
  3579. kAEGestalt ('gstl', class KAEFinderSuite: 'fndr') to return Gestalt
  3580. information. On the local machine you can call Gestalt direct but remote
  3581. computers can now be examined also. If someone finds more detailed info
  3582. about this or has some working source samples, please let me know. Or
  3583. perhaps you want to write an application showing all Gestalt data and
  3584. even quering remote machines???
  3585. (Rene Ros; source: "Scripting the Finder from your Application" in
  3586. Develop 20)
  3587.  
  3588. GestaltValue
  3589. ------------
  3590. The first time you call NewGestaltValue, the library installs two non-
  3591. relocatable blocks in the system heap and the 'gval' gestalt selector. One
  3592. of the blocks is filled with code: it's actually a gestalt definition that
  3593. implements GestaltValue's shared mechanism. The second block contains the
  3594. selectors and values GestaltValue manages. The response returned by the
  3595. 'gval' selector is a pointer to the second non-relocatable block in the
  3596. system heap. (Marco Piovanelli)
  3597.      
  3598. Dave Radcliffe wrote on 23 March 1993 regarding some information, about the
  3599. GestalValue glue code, listed with version 1.4 of this list:
  3600. ---------------------------------------------------------------------------
  3601. The information on the _GestaltValue trap ($ABF2) is correct based on the
  3602. glue, but because of a mistake on my part, the glue should be checking for
  3603. $ABF1. A new version of the glue is being distributed on the developer CD
  3604. next month. If developers need the fixed version sooner, or don't have
  3605. access to the CD, they can write to me at:
  3606.  
  3607. radcliff@apple.com
  3608.  
  3609. and I'll send them the fixed version.
  3610. ---------------------------------------------------------------------------
  3611.  
  3612. Glue code
  3613. ---------
  3614. These development/compiler software contain glue-code to handle a few
  3615. selectors even when the Gestalt Manager is not available.
  3616.  
  3617.      THINK C      (5.0 and later)
  3618.      THINK Pascal (4.0 and later)
  3619.      MPW          (3.2 and later)
  3620.  
  3621. The following selectors can be handled by the glue-code, with all others
  3622. an error (gestaltUndefSelectorErr) will be returned.
  3623.  
  3624.      gestaltAppleTalkVersion = 'atlk';
  3625.      gestaltFPUType          = 'fpu ';
  3626.      gestaltKeyboardType     = 'kbd ';
  3627.      gestaltLogicalRAMSize   = 'lram';
  3628.      gestaltMachineType      = 'mach';
  3629.      gestaltMMUType          = 'mmu ';
  3630.      gestaltPhysicalRAMSize  = 'ram ';
  3631.      gestaltProcessorType    = 'proc';
  3632.      gestaltQuickdrawVersion = 'qd  ';
  3633.      gestaltSystemVersion    = 'sysv';
  3634.      gestaltVersion          = 'vers';
  3635.  
  3636. Unless you are using direct calls, ofcourse.
  3637. (Source: THINK Reference 2.0)
  3638.  
  3639. PPC Libraries
  3640. -------------
  3641. Some of the Gestalt selector functions are smart enough to avoid crashing
  3642. when the user removed the library file from the Extensions folder without
  3643. restarting the machine. And some selector functions aren't that smart.
  3644. Safest is to preflight the first call you make into the library (for code
  3645. or data) or include a preflight in your startup. 
  3646. (based on a posting by John Baxter in the comp.sys.mac.programmer Usenet
  3647. newsgroup on Internet.)
  3648.  
  3649. QuickTime
  3650. ---------
  3651. If you install QuickTime under System 6, a major portion of the Alias
  3652. Manager and FSSpec support is also added. But, QT doesn't implement the
  3653. Gestalt selectors because the implementation is not complete. You must
  3654. check for either Alias Mgr or QuickTime. (Michael Hecht)
  3655.  
  3656. These are the limitations for the Alias Mgr installed by QuickTime:
  3657.   - NewAlias will accept fromFile parameter, but it never creates a
  3658.     relative alias.
  3659.   - NewAliasMinimalFromPath and ResolveAliasFile aren't available.
  3660.   - ResolveAlias and UpdateAlias ignore the fromFile parameter.
  3661.   - MatchAlias may be called but the kARMMultVols, kARMSearchMore and
  3662.     kARMSearchRelFirst flags aren't available and ignored if passed.
  3663.     Also, a matchProc will never be called.
  3664.   - Won't mount network volumes.
  3665.  
  3666. And these are the FSSpec calls available with System 6 when QuickTime is
  3667. installed:
  3668.   - FSMakeFSSpec
  3669.   - FSpOpenDF
  3670.   - FSpOpenRF
  3671.   - FSpCreate
  3672.   - FSpDirCreate
  3673.   - FSpDelete
  3674.   - FSpGetFInfo
  3675.   - FSpSetFInfo
  3676.   - FSpSetFLock
  3677.   - FSpRstLock
  3678.   - FSpRename
  3679.   - FSpCatMove
  3680.   - FSpOpenResFile
  3681.   - FSpCreateResFile
  3682.   - FSpGetCatInfo
  3683.   
  3684. See for more information Technical Note M.QT.MovieTB.Q&As (QT 510) and
  3685. Develop 11 magazine on page 122.
  3686.  
  3687. RAM Doubler
  3688. -----------
  3689. It looks like RAM Doubler tricks the system in thinking there is virtual
  3690. memory but actually stores it somewhere else in memory instead to disk
  3691. which we are used to before RAM Doubler came around. It also looks like
  3692. this is done in corporation with Apple since a selector installed by
  3693. RAM Doubler is 'vmem' which is all lower-case and thus reserved by Apple.
  3694. In addition the response from this selector is always LongInt('RaM2') which
  3695. is the creator type of RAM Doubler. It seems this selector is used to
  3696. indicate which software is used to extend the capabilities of the Virtual
  3697. Memory Manager.
  3698. RAM Doubler also installs the selector 'vmFn' which seems to be a pointer
  3699. to a function to control RAMDoubler or to obtain information. It looks like
  3700. registers are used to pass parameters to and from that function. D0 perhaps
  3701. holds values 1 to 6 as input and perhaps A0 is used for the return value.
  3702.  
  3703. FUNCTION VMExtensionControl? (selector: Integer; VAR result: LongInt): OSErr;
  3704.      Registers on entry   D0: selector code
  3705.      Registers on exit    A0: result code
  3706.                           D0: error code
  3707.      Result codes
  3708.        noErr                       0 No error
  3709.        invalidSelector?          206 Invalid selector value?
  3710.        ???
  3711.  
  3712. Values used as selector:
  3713.      const
  3714.      kVMControlType?        = 1;      {type VM extension: RaM2}
  3715.      kVMControlVersion?     = 2;      {version VM extension as BCD}
  3716.      kVMControl???          = 3;      {engine version as BCD?: $0313}
  3717.      kVMControlMemSize?     = 4;      {unknown: Get/SetMemorySize?}
  3718.      kVMControlMemSize?     = 5;      {unknown: Get/SetMemorySize?}
  3719.      kVMControl???          = 6;      {unknown}
  3720.      kVMContolMaxFunctions? = MAXINT; {returns number of valid selectors}
  3721.                                       {or any other value outside the}
  3722.                                       {current 1-6 range}
  3723.  
  3724. Remember: all this is heresay!!!
  3725.  
  3726. Because of all this you can imagine RAM Doubler replaces/installs the
  3727. following System Software selectors (and I think it does):
  3728. lram, pgsz, ram , vm  , vmbs. (Anonymous, Rene Ros)
  3729.  
  3730. General Info
  3731. ============
  3732. The following sections provide general information needed or useful in
  3733. relation to the Gestalt Manager.
  3734.  
  3735. System Managers
  3736. ---------------
  3737. Listed below is a table with the different software components of the
  3738. System Software with their related selectors. The selectors listed with
  3739. this table are included in the (known) 'Apple System Software' and
  3740. 'Apple Additional Software' sections.
  3741. It provides a cross-reference to selectors and a starting point into other
  3742. documentation (Inside Macintosh).
  3743. With System Software versions before 6.0.4 (and Gestalt) you may need to
  3744. use TrapAvailable to determine the presence of certain system parts.
  3745.  
  3746. ===========================================================================
  3747. System Software components and their selectors
  3748. ===========================================================================
  3749. Manager                        Determine presence/features by using:
  3750. ---------------------------------------------------------------------------
  3751. A/UX                           a/ux
  3752. ADB Mgr                        ???
  3753. Alias Mgr                      alis
  3754. Apple Event Mgr                evnt
  3755. Apple Guide                    help, reno
  3756. Apple Remote Access            arb , strm
  3757. AppleScript                    ascr, ascv
  3758. AppleTalk Mgr                  atkv, atlk
  3759. At Ease                        kids
  3760. CD-ROM Software                aucd, hscd, iscd, kpcd, ufox
  3761. CloseView                      BSDa
  3762. Code Fragment Mgr              cfrg
  3763. Collection Mgr                 cltn
  3764. Color Mgr                      ???
  3765. Color Picker Mgr               cpkr
  3766. ColorSync Utilities            cmta, cmtc
  3767. Communications Toolbox         ctbm, ctbu, ctbv
  3768.                                see:
  3769.                                   Communications Resource Mgr
  3770.                                   Connection Mgr
  3771.                                   Telephone Mgr
  3772.                                   Terminal Mgr
  3773. Communications Resource Mgr    crm 
  3774. Component Mgr                  cpnt
  3775. Compression Mgr                icmp
  3776. Connection Mgr                 conn
  3777. Control Mgr                    no need to check
  3778. Control Strip                  sdev, csvr
  3779. Cursor Utilities               qd >= gestalt32BitQD
  3780. Data Access Mgr                dbac
  3781. Debugger (MacsBug)             See PT 535 - MacsBug Q&As TechNote
  3782. Deferred Task Mgr              ???
  3783. Desk Manager                   no need to check
  3784. Desktop Mgr                    PBHGetVolParms fills GetVolParmsInfoBuffer.
  3785.                                Test for the bHasDesktopMgr bit (12) of the
  3786.                                vMAttrib field for all volumes.
  3787. Device Mgr                     no need to check
  3788. Dialog Mgr                     ditl, TrapAvailable(_DialogMgrDispatch)
  3789. Dictionary Mgr                 dict
  3790. Digital Signature Toolbox      dsig
  3791. Disk Initialization Mgr        fs  
  3792. Display Mgr                    dplv, dply
  3793. Docking Mgr                    ???
  3794. Drag Manager                   drag
  3795. Easy Access                    eajt, easy
  3796. Edition Mgr                    edtn
  3797. File Mgr                       ???, fs  
  3798. File System Mgr                fs  , fsm 
  3799. File Transfer Mgr              fxfr
  3800. Finder                         fndr
  3801. FindFolder function            fold
  3802. Flagship                       flag
  3803. Font Mgr                       font
  3804. Gestalt Mgr                    gval, tabl, vers, TrapAvailable(_Gestalt),
  3805.                                TrapAvailable(_GestaltValueDispatch)
  3806. Help Mgr                       help
  3807. Icon Utilities                 icon, TrapAvailable(_IconDispatch)
  3808. LAP Mgr                        atlk >= 53
  3809. List Mgr                       no need to check ?
  3810. MacsBug                        see: Debugger (MacsBug)
  3811. MacTCP                         mtcp
  3812. Memory Mgr                     addr, cash, lram, os  
  3813. Memory Management Utilities    addr, TrapAvailable(_HWPriv) ?
  3814. Menu Mgr                       no need to check
  3815. Message Mgr                    mess
  3816. MIDI Mgr                       ???
  3817. Mixed Mode Mgr                 mixd
  3818. Notification Mgr               nmgr, TrapAvailable(_NMInstall) with System
  3819.                                      before 6.0.4 ?
  3820. OCE Toolbox                    ocet, oceu
  3821. Offscreen Graphics Worlds      (qd >=gestalt32BitQD) OR (sysv >= $0700) ?
  3822. OS Utilities                   depends on call
  3823. OSA                            Use Component Mgr to check for Generic
  3824.                                Scripting Component
  3825. PC Exchange                    pcxg
  3826. Package Mgr                    no need to check
  3827. Picture Utilities              sysv >= $0700
  3828. Popup CDEF                     pop!
  3829. Power Mgr                      powr
  3830. PowerTalk                      see:
  3831.                                   Digital Signature Toolbox,
  3832.                                   OCE Toolbox,
  3833.                                   S&F Server,
  3834.                                   SDP Find,
  3835.                                   SDP Prompt,
  3836.                                   SDP Standard Directory,
  3837.                                   SMP Mailer,
  3838.                                   SMP Sendletter
  3839. PPC Toolbox                    ppc 
  3840. Process Mgr                    os  
  3841. QuickDraw                      qd  , qdrw
  3842. QuickDraw GX                   qdgx
  3843. QuickDraw GX Graphics          gfxa, grfx
  3844. QuickDraw GX Printing Mgr      pmgr
  3845. QuickTime                      qtim, qtrs
  3846. Realtime Mgr                   rtmr
  3847. Resource Mgr                   rsrc
  3848. S&F Server (PowerTalk)         see OCE Toolbox
  3849. SANE (OmegaSANE)               ???
  3850. Scrap Mgr                      scra
  3851. Script Mgr                     scr#, scri, TrapAvailable(_ScriptUtil)
  3852. SCSI Mgr                       scsi
  3853. SDP Find (PowerTalk)           dfnd
  3854. SDP Prompt (PowerTalk)         prpv
  3855. SDP Standard Directory (PowerTalk)
  3856.                                sdvr
  3857. Segment Mgr                    no need to check
  3858. Server control calls           TrapAvailable(ServerDispatch) [$A094]
  3859. Shared Library Mgr             ??? (aslm?)
  3860. Shutdown Mgr                   TrapAvailable(_Shutdown) ?
  3861. Slot Mgr                       nubs, slot, slt1, sltc
  3862. SMP Mailer (PowerTalk)         malr
  3863. SMP Sendletter (PowerTalk)     spsl
  3864. Sound Mgr                      snd , snhw, TrapAvailable(_SndDispatch)
  3865. Sound Input Mgr                snd 
  3866. Speech Mgr                     ttsc
  3867. Speech Recognition             srta, srtb
  3868. Standard File Package          stdf
  3869. Standard NBP                   nlup
  3870. System Toolbox (hardware)
  3871.    coprocessor                 fpu
  3872.    disks                       intd
  3873.    keyboard                    kbd 
  3874.    machine                     mach
  3875.    misc. ICs                   hdwr, mmu , rbv , sccr, sccw, ser ,
  3876.                                via1, via2
  3877.    processor                   cput, proc, sysa
  3878.    RAM ICs                     ram , prty
  3879.    ROM ICs                     rom , romv
  3880.    trackpad                    tpad
  3881. System Toolbox (software)      lmem, micn, misc, os  , ostt, osyv,
  3882.                                sysv, tbtt, xttt
  3883. Telephone Mgr                  tele
  3884. Terminal Mgr                   term
  3885. TextEdit                       te  , teat
  3886. Text Services Mgr              tsma, tsmv
  3887. Text Services Manager for TextEdit
  3888.                                tmTE, tmTV
  3889. Text Utilities                 depends on call
  3890. Thread Mgr                     thds
  3891. Time Mgr                       tmgr
  3892. Toolbox Utilities              depends on call
  3893. Translation Mgr                xlat
  3894. TV & Video                     mtv2, tv  
  3895. Vertical Retrace Mgr           no need to check
  3896. Video                          see: TV & Video
  3897. Virtual Memory Mgr             pgsz, vm  
  3898. Windows Mgr                    no need to check
  3899. Workstation Management Agent   wma.
  3900. WorldScript                    scri >= $0710, ws 1
  3901. XTND Technology                XTND
  3902. ---------------------------------------------------------------------------
  3903.  
  3904. Gestalt Problems
  3905. ----------------
  3906. This section lists all known problems related to the Gestalt selectors.
  3907. Each problem is also listed with each of the entries in the selector
  3908. chapters above. The table below provides an overview.
  3909.  
  3910. ===========================================================================
  3911. Overview Gestalt selector problems
  3912. ===========================================================================
  3913. Software                 Code  Problem                           Status
  3914. ---------------------------------------------------------------------------
  3915. Apple Photo Access ext   kpcd  always returns $FFFFFFF7          R unclear
  3916. AppleScript ext          ascv  different formats version         R problem?
  3917. AppleTalk                atkv  majorRev of version in hex          problem?
  3918. Color Picker ext         cpkr  incorrect return values?            problem?
  3919. Control Strip cp         sdev  two symbolic names defined          problem?
  3920. Easy Access cp           easy  incorrect return values           C unknown
  3921. Icon Utilities code      icon  not installed                     C SYS 712?
  3922. Link Tool Mgr 2.0 ext    ltma  incorrect version value?          R problem?
  3923. PowerTalk ext/Control Strip 1.0 cp
  3924.                          sdvr  same selector for both?           C CS 1.1?>
  3925. Shared Library Mgr ext   aslm  incorrect version value?            problem?
  3926. Speech Recognition ext   srta, srtb
  3927.                                installed even if no SR possible  R unclear
  3928. System (enablers)        *ALL* Gestalt Mgr with System 7.1.2     C SYS 7.5>
  3929.                          *ALL* Minimal System 7 may lie about
  3930.                                 managers present                 C SYS 7.5>
  3931.                          alis  QT part. installs but no selector C ok
  3932.                          cash  never installed?                    unclear
  3933.                          conn  not installed with System 6         problem?
  3934.                          cput  incorrect values 68K header file  C fixed
  3935.                                system 7.5? returns incorrect
  3936.                                 values for 68K                   C unknown
  3937.                          ctbv  PM returned 1.1 while ROM has 1.0 C SU 3.0 >
  3938.                          fs    QT part. installs but no selector C ok
  3939.                          intd  bit 1 (disk spon up) not set      R problem?
  3940.                          kbd   Adjustable Keyboard incorrect     C SU 2.0 >
  3941.                                not installed on PM7100 (7.1.2)     unclear
  3942.                          qdrw  HasColor set on B/W machines (7.0)C unknown
  3943.                          rsrc  PartialRsrcs not set with 7.0     C 7.1 >
  3944.                          sltc  No information on IIsi slot       C never?
  3945.                          sysv  KanjiTalk 6.0.7 incorrect return value
  3946.                                                                  C sysvINIT
  3947.                                System 6.0.8 returns $0607          never
  3948.                                System 7.1.2/PPC card returns 0710  unclear
  3949. System/Apple Event ext   evnt  constants overlap header files    C fixed
  3950. ---------------------------------------------------------------------------
  3951. R       = unconfirmed but known to be reported to Apple
  3952. C       = confirmed
  3953. fixed   = problem is fixed, see selector entry for more information
  3954. ok      = meant to work this way...
  3955. unclear = unclear if it will ever be fixed
  3956. unknown = unknown when it will be fixed
  3957.  
  3958. History
  3959. -------
  3960. This section contains a short overview about the history of the Gestalt
  3961. Manager and its predecessors.
  3962.  
  3963.  
  3964. ENVIRONS
  3965.  
  3966.      PROCEDURE Environs (VAR rom,machine: INTEGER);
  3967.  
  3968. With the introduction of the Macintosh the system routine 'Environs' was
  3969. introduced. It allowed to obtain two pieces of information: the ROM version
  3970. and a value to indicate the machinetype. This "ROM oriented" way soon
  3971. appeared to be insufficient when the range of Macintosh hardware and
  3972. software became more diverse.
  3973.  
  3974.  
  3975. SYSENVIRONS
  3976.  
  3977.      FUNCTION SysEnvirons (versionRequested: INTEGER;
  3978.                            VAR theWorld: SysEnvRec): OSErr;
  3979.  
  3980. With System 4.1 a new system routine was introduced which allowed the
  3981. programmer to obtain more information about the current configuration.
  3982. Upon completion SysEnvirons filled the SysEnvRec with the information.
  3983. This was however an "all-or-nothing" situation, it was not possible to
  3984. obtain just one piece of information.
  3985. To allow for larger system environment records with more information one
  3986. needed to specify the version number of the system environment record. The
  3987. last version, introduced with System 6, was version 2 which had nine fields.
  3988.  
  3989.  
  3990. GESTALT
  3991.  
  3992.      FUNCTION Gestalt (code: LONGINT; VAR feature: LONGINT): OSErr;
  3993.  
  3994. You may wonder how one can be so stupid to list the Gestalt routine wrong...
  3995. However, this is how the Gestalt routine was presented to developers in
  3996. the Preliminairy Developer Note regarding System 7 in 1989. It was
  3997. originally written in 1988.
  3998. There was no selector of type OSType as we known it today. Instead a list
  3999. of numerical constants was used, like:
  4000.  
  4001.      zVersion    = $1;   { Gestalt Version }
  4002.      zMachType   = $100; { machine type }
  4003.      zSystemVers = $101; { system file version }
  4004.  
  4005. and nine others.
  4006. But the principle used with todays Gestalt routine was there: request one
  4007. specific piece of information and you'll get it. Nothing more and nothing
  4008. less. Back then it wasn't the Gestalt Manager since there was only one
  4009. routine. Both the NewGestalt and the ReplaceGestalt did not exist.
  4010. In June 1992 (released in February 1993?) three new functions were added
  4011. to the Gestalt Manager: NewGestaltValue, ReplaceGestaltValue and
  4012. DeleteGestaltValue
  4013.  
  4014. Abbreviations
  4015. -------------
  4016. A/UX     - Apple UNIX
  4017. ADB      - Apple Desktop Bus
  4018. AMU      - Apple Memory Unit?
  4019. ARTA     - Apple Real Time Architecture
  4020. AS       - AppleShare
  4021. ASC      - Apple Sound Chip
  4022. ASCII    - American Standard Code for Information Interchange
  4023. ASIC     - Application Specific Integrated Circuit
  4024. AURP     - AppleTalk Update-based Routing Protocol
  4025. AWAC     - Audio Waveform Amplifier and Converter
  4026. Caboose  - processor that manages the keyswitch, system power,
  4027.            the real-time clock, and parameter RAM
  4028. CDEF     - Control DEFinition (code resource)
  4029. CISC     - Complex Instruction Set Computer (compare with RISC)
  4030. CLUT/DAC - color look-up table and digital-to-analog converter IC
  4031. Combo    - chip, combines the functions of the SCC and the SCSI controller
  4032. CPU      - Central Processing Unit
  4033. DAFB     - Direct Access Frame Buffer
  4034. DAV      - Digital Audio Video (connector)
  4035. DDC      - Display Driver Chip
  4036. DFAC     - Digitally Filtered Audio Chip
  4037. DITL     - Dialog ITems List (resource)
  4038. DLL      - Dynamically Linkable Library
  4039. DMA      - Direct Memory Access
  4040. DN       - Developer Note
  4041. DOS      - Disk Operating System (to run a computer???)
  4042. DRAM     - Dynamic RAM
  4043. DSP      - Digital Signal Processor
  4044. EASC     - Enhanced Apple Sound Chip
  4045. FAT      - File Allocation Table?
  4046. FMC      - Fitch Memory Controller
  4047. FPU      - Floating Point Unit
  4048. GDEF     - Gestalt DEFinition (code resource)
  4049. GPi      - General Purpose Input
  4050. IM       - Inside Macintosh
  4051. IOP      - Input/Output Processor
  4052. IWM      - Integrated Woz Machine
  4053. JDB      - Junction Data Bus
  4054. JMC      - Jaws Memory Controller
  4055. MacOS    - Macintosh Operating System
  4056. MCU      - Memory Control Unit
  4057. MAE      - Macintosh Application Environment (Mac system on UNIX RISC)
  4058. MEO      - Macintosh Easy Open
  4059. MMU      - Memory Management Unit
  4060. NBP      - Name Binding Protocol
  4061. OCE      - Open Colloboration Environment
  4062. OMC      - Orwell Memory Controller
  4063. OS       - Operating System
  4064. OSA      - Open Scripting Architecture:
  4065.            OSA is the Open Scripting Architecture. It is the layer upon
  4066.            which all scripting languages sit and the method by which
  4067.            applications call scripts. (Jon Pugh)
  4068. OSL      - Object Support Library
  4069. OSS      - Operating System Support chip
  4070. PB       - PowerBook
  4071. PCI      - Peripheral Component Interconnect bus
  4072. PDS      - Processor-Direct Slot
  4073. PGC      - Parity Generator Chip
  4074. PMMU     - Paged Memory Management Unit
  4075. PSRAM    - Pseudo Static RAM
  4076. PPC      - Process-to-Process Communication, also:
  4077.            PowerPC
  4078. ProDOS   - Professional Disk Operating System? (OS for the Apple //)
  4079. PWM      - Pulse-Width Modulated?
  4080. QD       - QuickDraw
  4081. RAM      - Random Access Memory (see DRAM & SRAM, compare ROM)
  4082. RAMDAC   - Random Access Memory, Digital/Analog Converter
  4083. RBV      - RAM-Based Video
  4084. RISC     - Reduced Instruction Set Computer (compare with CISC)
  4085. ROM      - Read Only Memory
  4086. RSB      - Ram Based Sound
  4087. RTC chip - Real-Time Clock chip
  4088. RPU      - Random Parity Unit
  4089. SCC      - Serial Communications Controller
  4090. SCSI     - Small Computer System Interface
  4091. SDP      - Standard Directory Package
  4092. SIMM     - Single In-line Memory Module
  4093. SMP      - Standard Mailer Package
  4094. Sonic    - chip for built-in Ethernet
  4095. Sporty   - a custom IC that provides sound output amplification functions
  4096. SRAM     - Static RAM
  4097. SWIM     - Super-Wozniak Integrated Machine OR
  4098.            Sanders-Wozniak Integrated Machine
  4099. TE       - TextEdit (32Kb limited built-in text-engine)
  4100. TN       - Technical Note
  4101. TTS      - Text-To-Speech
  4102. VDAC     - Video Digital to Analog Converter
  4103. VIA      - Versatile Interface Adapter
  4104. VM       - Virtual Memory
  4105. VRAM     - Video RAM
  4106. YANCC    - Yet Another NuBus Controller Chip
  4107.  
  4108. FA       - File Access
  4109. RA       - Remote Access
  4110.  
  4111. Sources
  4112. -------
  4113. A    Apple Computer, Inc.
  4114. AD    Documentation & Magazines
  4115. AD01   MacTCP Programmer's Guide
  4116. AD02   AppleTalk Remote Access API External Reference Specification
  4117. AD03   Macintosh Easy Open programmer's docs
  4118. AD04   Thread Manager 1.1 and 2.0 documentation
  4119. AD05   Drag Manager Programmer's Guide
  4120. AD06   Sound Manager Tech Note on BookMark CD 16
  4121. AD07   Develop 17, p. 123
  4122. AD08   MAE Compatibility Hints
  4123. AD09   Color Matching documentation on ETO 14 and BookMark 18
  4124. AD10   OS Compatability doc on WWDC 1994 CD
  4125. AD11   IM PPC System Software
  4126. AD12   IM OS Utilities
  4127. AD13   Develop 19, p. 105
  4128. AD14   File System Manager Guide, Sep. 1994
  4129. AD15   Apple Remote Access API, part of Mac OS SDK
  4130. AD16   Apple Guide Authoring Kit
  4131. AD17   IM Advanced Color Imaging (Draft)
  4132.  
  4133. AS    Software, source code & header files
  4134. AS01   QuickTime ImageCompression source files
  4135. AS02   CommToolbox 1.1 source files
  4136. AS03   MPW Interface files on Bookmark CD 14
  4137. AS04   GestaltEqu header file on ETO 12
  4138. AS05   GestaltEqu header file on ETO 13
  4139. AS06   GestaltEqu header file on BookMark CD 17
  4140. AS07   TSMTE header file on BookMark CD 17
  4141. AS08   AppleScript header file on ETO 14
  4142. AS09   Drag header file on ETO 14
  4143. AS10   XTNDInterface header file on ETO 14
  4144. AS11   ControlStrip header file on BookMark CD 19
  4145. AS12   AppleGuide header file on BookMark CD 18
  4146. AS13   Macintosh on RISC SDK (also on CodeWarrior CD)
  4147. AS14   Gestalt header file as part of Universal Interfaces 2.0a1
  4148.  
  4149. AT    Technical Notes
  4150. AT01   TN M.OV.GestaltSysenvirons (OV 16), May 1987
  4151. AT02   TN M.NW.AppleTalk2 (NW 13), Feb.1992
  4152. AT03   TN M.DV.CD-ROMDriver (DV 22), May 1993
  4153. AT04   TN M.HW.SCSI.Q&As (HW 540), Oct. 1990
  4154. AT05   TN M.TX.TextServicesMgr.Q&As (TE 531), May 1993
  4155. AT06   TN OS 05 - System Update 3.0, July 1993/Rev. May 1994
  4156. AT07   TN M.DV.CuriousSCSI, May 1994
  4157.  
  4158. S    Symantec Corp.
  4159. S01    THINK Pascal 4.0 interface files
  4160. S02    THINK C GestaltGlue source files
  4161. S03    THINK Reference 1.0 and 2.0
  4162.  
  4163. M    Miscellaneous sources
  4164. M01    Gestalt DA 0.4 1990 (Carl C.Hewitt)
  4165. M02    Gestalt dcmd 1.0 (Eric Simenel, Apple Computer France)
  4166. M03    sysvINIT source files (Apple Computer Japan, Inc.)
  4167. M04    TMON Professional Reference Manual, p.192 (ICOM Simulations)
  4168. M05    AfterDarkGestalt.h file (Berkeley Systems, Inc.)
  4169. M06    SoftwareFPU Programmer Info (John Neil & Associates)
  4170.  
  4171. Related Software
  4172. ----------------
  4173. Listed below is software which may be of interest to developers because
  4174. they are a tool providing information from the Gestalt Manager, include
  4175. Gestalt-related source code or provide additional capabilities to the
  4176. Gestalt Manager. Included is also were you can find or get a copy.
  4177. All software available on sumex-aim.stanford.edu is also available on the
  4178. INFO-MAC CD-ROM by Pacific HiTech, Inc. The INTERNET FTP-sites mentioned
  4179. may have one or more mirror sites as well. Locations on CompuServe are not
  4180. included.
  4181. Some software listed below can also be found at the mail-archive server,
  4182. see the section 'Availability' in the 'About this list' chapter for more
  4183. information.
  4184.  
  4185. 5thColumn, GestaltProbe (Kamran Golriz, Apple Computer Inc.)
  4186.      Extension with MPW Tools to query other mac on a network, one of
  4187.      the tools is GestaltProbe.
  4188.  
  4189.      CD-ROM: Bookmark CD (Apple Developer Group)
  4190.                :Tools & Applications:Network & Communications:5th Column:
  4191. AEgestalt (Kent Sandvik, Apple Computer Inc.)
  4192.      Uses Apple Events to get Gestalt response from remote machine,
  4193.      includes C-source. (Requires color?? Doesn't run on MacPlus)
  4194.  
  4195.      FTP:    ftp.apple.com [130.43.2.3]
  4196.                ftp://ftp.apple.com/dts/mac/sc/snippets/platforms.tools/
  4197.                                    aegestalt-1-0.hqx
  4198.      CD-ROM: Bookmark CD (Apple Developer Group)
  4199.                :Documentation & Samples:Sample Code:Snippets:
  4200.                  Platforms & Tools:AEGestalt 1.0:
  4201. AfterDark Gestalt header file (Berkeley Systems, Inc.)
  4202.      Header file for using the gestalt selectors used by many screensavers.
  4203.  
  4204.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  4205.                archive get src/AfterDarkGestalt.h
  4206.              brklysystm@aol.com (Berkeley Systems Mac Tech Support)
  4207.                ask them nicely to email the AfterDarkGestalt.h file.
  4208. CheckGestaltFor (Neil Shulman)
  4209.      Hypercard external to access the Gestalt Manager.
  4210.  
  4211.      FTP:    sumex-aim.stanford.edu [36.44.0.6]
  4212.                ftp://sumex-aim.stanford.edu/info-mac/card/
  4213.                                             check-gestalt-for-xcmd.hqx
  4214.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  4215.                archive get software/check-gestalt-for-xcmd.hqx
  4216. DisplayGestalt (Craig Marciniak)
  4217.      Small application displays configuration using Gestalt Mgr, includes
  4218.      C-source.
  4219.  
  4220.      FTP:    mac.archive.umich.edu [141.211.120.11]
  4221.              ftp://mac.archive.umich.edu/development/libraries/
  4222.                                          displaygestalt.cpt.hqx
  4223.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  4224.                archive get software/displaygestalt.cpt.hqx
  4225. Feature Teller 1.0 (Jennifer Minge, Apple Computer Inc.)
  4226.      Sample application quering Gestalt Mgr (or SysEnvirons if not
  4227.      available). Includes THINK Pascal source.
  4228.  
  4229.      CD-ROM: Bookmark CD (Apple Developer Group)
  4230.                :Tools & Applications:OS/Toolbox:Feature Teller 1.0:
  4231. Gestalt! 3.0 (Roland Mansson)
  4232.      Displays responses from installed selectors.
  4233.  
  4234.      FTP:    ftp.lu.se [130.235.132.90]
  4235.                ftp://ftp.lu.se/pub/mac/util/gestalt300.cpt.hqx
  4236.              sumex-aim.stanford.edu [36.44.0.6]
  4237.                ftp://sumex-aim.stanford.edu/info-mac/cfg/gestalt-300.hqx
  4238.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  4239.                archive get software/gestalt-30-app.cpt.hqx
  4240. GestaltDA 0.4 (Carl C. Hewitt, Apple Computer Inc.)
  4241.      Displays responses from installed selectors.
  4242.  
  4243.      CD-ROM: Bookmark CD (Apple Developer Group)
  4244.                :Tools & Applications:OS/Toolbox:GestaltDA 0.4
  4245. Gestalt DCMD (Apple Computer Inc.)
  4246.      This dcmd (debugger command for MacsBug) allows you to "use" Gestalt
  4247.      when you're in MacsBug.
  4248.  
  4249.      FTP:    ftp.apple.com [130.43.2.3]
  4250.                ftp://ftp.apple.com/dts/mac/sc/snippets/platforms.tools/
  4251.                                    gestalt-dcmd.hqx
  4252.      CD-ROM: Bookmark CD (Apple Developer Group)
  4253.                :Documentation & Samples:Sample Code:Snippets:
  4254.                  Platforms & Tools:Gestalt dcmd:
  4255. Gestalt Environment 7
  4256.      Application to list a number of installed selectors.
  4257.  
  4258.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  4259.                archive get software/ge7.hqx
  4260. GestaltExt (Andre Cavegn)
  4261.      External for 4TH Dimension Relational Database application from
  4262.      ACI/ACI US.
  4263.  
  4264.      FTP:    sumex-aim.stanford.edu [171.65.4.3]
  4265.                ftp://sumex-aim.stanford.edu/info-mac/dev/a4d/ext/
  4266.                                             gestalt-ext.hqx
  4267.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  4268.                  archive get software/gestalt-ext.hqx
  4269. GestaltGlue (???)
  4270.      Glue code and interface in C and assembly.
  4271.  
  4272.      CD-ROM: Bookmark CD (Apple Developer Group)
  4273.                :Documentation & Samples:Sample Code:System 7.0 samples:
  4274.                  DTS.Utilities:Gestalt*
  4275. Gestalt Pro 1.1.2 (Rene G.A. Ros)
  4276.      External for 4TH Dimension Relational Database application from
  4277.      ACI/ACI US.
  4278.  
  4279.      FTP:    sumex-aim.stanford.edu [171.65.4.3]
  4280.                ftp://sumex-aim.stanford.edu/info-mac/dev/a4d/ext/
  4281.                                             gestalt-pro-112.hqx
  4282.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  4283.                archive get software/gestalt-pro-112-.sit.hqx
  4284. GestaltTalk (Brigham Stevens, Apple Computer DTS)
  4285.      Code part of Notification Hacks to show how you can communicate
  4286.      between an application and an INIT using the Gestalt Mgr. Includes
  4287.      C-source files.
  4288.  
  4289.      CD-ROM: Bookmark CD (Apple Developer Group)
  4290.                :Documentation & Samples:Sample Code:Snippets:
  4291.                  Toolbox:Notification Hacks:GestaltTalk:
  4292. GestaltValue (anonymous, Apple Computer Inc.)
  4293.      Library and interface for use of the GestaltValue functions.
  4294.  
  4295.      FTP:    sumex-aim.stanford.edu [171.65.4.3]
  4296.                ftp://sumex-aim.stanford.edu/info-mac/dev/
  4297.                                             gestalt-value-lib.hqx
  4298.      EMAIL:  Dave Radcliffe, Mac DTS (radcliff@apple.com)
  4299.                gestalt-selectors-list-request@bio.vu.nl
  4300.                  archive get software/gestaltvalue-lib.hqx
  4301.      CD-ROM: Bookmark CD (Apple Developer Group)
  4302.                :Tools & Applications:OS/Toolbox:GestaltValue:
  4303. GestaltWatch ext 1.0a1 (Scott Bronson)
  4304.      Tracks all calls to NewGestalt and ReplaceGestalt traps.
  4305.      Not yet available.
  4306. Gestalt XFCN 3.2.1 (Jeff Iverson)
  4307.      Hypercard XFCN to query the Gestalt Manager.
  4308.  
  4309.      FTP:    sumex-aim.stanford.edu [171.65.4.3]
  4310.                ftp://sumex-aim.stanford.edu/info-mac/card/gestalt-321.hqx
  4311.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  4312.                archive get software/gestalt-321-xfcn.hqx
  4313. Gestaltzeigen appl 1.0 (B. Kevin Hardman)
  4314.      Displays responses from installed selectors and any bit
  4315.      interpretation. Not yet available.
  4316. Get Gestalt (AppleScript addition) 1.2 by Mark Alldritt
  4317.      Provides access to the Gestalt Manager for AppleScript scripts.
  4318.  
  4319.      FTP:    gaea.kgs.ukans.edu [129.237.140.40]
  4320.                ftp://gaea.kgs.ukans.edu/applescript/osaxen/
  4321.                                         ScriptTools1.3.sit.hqx ?
  4322.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  4323.                archive get software/scripttools-13.sit.hqx
  4324. Go Gestalt appl 1.5 (Paul Reznick)
  4325.      Displays information obtained thru the Gestalt Mgr. 
  4326.  
  4327.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  4328.                archive get software/go-gestalt-15.sit.hqx
  4329. INITGestalt (Jeremy Roussak & Rene Ros)
  4330.      Latest version of the INITGestalt proposal. Tries to define a
  4331.      standardized record to use with the Gestalt Mgr.
  4332.  
  4333.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  4334.                archive get INITGestalt.txt
  4335. Informant XFCN 1.0 (Jeff Iverson)
  4336.      Hypercard XFCN to query the Gestalt Manager.
  4337.  
  4338.      FTP:    sumex-aim.stanford.edu [171.65.4.3]
  4339.                ftp://sumex-aim.stanford.edu/info-mac/card/
  4340.                                             information-10-xfcn-demo.hqx
  4341.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  4342.                archive get software/information-10-xfcn-demo.hqx
  4343. Mac Identifier 1.0 (Flux Software, written by Maurice Volaski)
  4344.      Fixes the problem of System 7.5 which doesn't display the real
  4345.      machine type name anymore.
  4346.      FTP:    sumex-aim.stanford.edu [171.65.4.3]
  4347.                ftp://sumex-aim.stanford.edu/info-mac/gui/
  4348.                                             mac-identifier-111.hqx
  4349.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  4350.                archive get software/mac-identifier-111.hqx
  4351. SAVR Gestalt (Thomas Reed)
  4352.      Source code (C) demonstrating how to install the Screen saver
  4353.      Gestalt selector 'SAVR'.
  4354.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  4355.                archive get src/gestalt-savr.txt
  4356. Tattle-Tech appl (Decision Makers Software, Inc.)
  4357.      Uses Gestalt manager extensively to display all know information.
  4358.  
  4359.      FTP:    sumex-aim.stanford.edu [171.65.4.3]
  4360.                ftp://sumex-aim.stanford.edu/info-mac/cfg/
  4361.                                             tattle-tech*.hqx
  4362.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  4363.                archive get software/tattle-tech*.hqx
  4364. TechTool appl 1.0.4 (Micromat Computer Systems)
  4365.      Application to reset PRAM, rebuild DTDB and show Gestalt info.
  4366.  
  4367.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  4368.                archive get software/tech-tool-104.hqx
  4369. Technical Notes: (Apple Computer Inc.)
  4370.      M.OV.GestaltSysenvirons (Gestalt & SysEnvirons)
  4371.      M.NW.AppleTalk2         (AppleTalk The Rest Of the Story)
  4372.      M.OS.GestaltMgr.Q&As    (Gestalt Manager Questions and Answers)
  4373.  
  4374.      FTP:    ftp.apple.com [130.43.2.3]
  4375.                ftp://ftp.apple.com/dts/mac/tn/overview.ov/
  4376.                                    ov-16-gestalt-and-sysenvir.hqx
  4377.                ftp://ftp.apple.com/dts/mac/tn/networking.nw/appletalk2.hqx
  4378.                ftp://ftp.apple.com/dts/mac/tn/operating.system.os/
  4379.                                    os-505-gestalt-mgr-qas.hqx 
  4380.      CD-ROM: Bookmark CD (Apple Developer Group)
  4381.                :Documentation & Samples:Mac Tech Notes:
  4382.                  Overview (OV):OV 16 - Gestalt & SysEnvirons
  4383.                  Networking (NW):NW 13 - AppleTalk The Rest Of
  4384.                  Operating System (OS):OS 505 - Gestalt Mgr Q&As
  4385. Test Gestalt (Apple Computer Inc.)
  4386.      Examples to test for QuickDraw version and Virtual Memory status,
  4387.      includes C-source.
  4388.  
  4389.      FTP:    ftp.apple.com [130.43.2.3]
  4390.                ftp://ftp.apple.com/dts/mac/sc/snippets/toolbox/
  4391.                                    testgestalt.hqx
  4392.      CD-ROM: Bookmark CD (Apple Developer Group)
  4393.                :Technical Documentation:Sample Code:Snippets:
  4394.                  Toolbox:TestGestalt:
  4395. Userfunction Gestalt code (Rich Kubota, Apple Computer Inc.)
  4396.      Source code in C for Apple Installer Script writers.
  4397.  
  4398.      FTP:    ftp.apple.com [130.43.2.3]
  4399.                ftp://ftp.apple.com/dts/mac/sc/snippets/platforms.tools/
  4400.                                    userfunction-gestalt.hqx
  4401.      CD-ROM: Bookmark CD (Apple Developer Group)
  4402.                :Technical Documentation:Sample Code:Snippets:
  4403.                  Platforms & Tools:UserFunction Gestalt:
  4404. WhoAmI? (Jonathan Jacobs)
  4405.      Installer to add full Machine Name STR# resource to System 7.5.
  4406.  
  4407.      FTP:    sumex-aim.stanford.edu [36.44.0.6]
  4408.                ftp://sumex-aim.stanford.edu/info-mac/cfg/who-am-i-099.hqx
  4409.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  4410.                archive get software/who-am-i-099.hqx
  4411.  
  4412. URL
  4413. ---
  4414. Below are all locations of files listed in the Universal Resource Locators
  4415. (URL) format, except those which can not be described by an URL. They are
  4416. listed here again, but now without linebreaks. This is the only part of the
  4417. GSL exceeding the 80 characters per line limit.
  4418.  
  4419. ftp://ftp.apple.com/dts/mac/sc/snippets/platforms.tools/aegestalt-1-0.hqx
  4420. ftp://ftp.apple.com/dts/mac/sc/snippets/platforms.tools/gestalt-dcmd.hqx
  4421. ftp://ftp.apple.com/dts/mac/sc/snippets/platforms.tools/userfunction-gestalt.hqx
  4422. ftp://ftp.apple.com/dts/mac/sc/snippets/toolbox/testgestalt.hqx
  4423. ftp://ftp.apple.com/dts/mac/tn/networking.nw/appletalk2.hqx
  4424. ftp://ftp.apple.com/dts/mac/tn/operating.system.os/os-505-gestalt-mgr-qas.hqx 
  4425. ftp://ftp.apple.com/dts/mac/tn/overview.ov/ov-16-gestalt-and-sysenvir.hqx
  4426. ftp://ftp.lu.se/pub/mac/util/gestalt300.cpt.hqx
  4427. ftp://gaea.kgs.ukans.edu/applescript/osaxen/ScriptTools1.3.sit.hqx ?
  4428. ftp://mac.archive.umich.edu/development/libraries/displaygestalt.cpt.hqx
  4429. ftp://merit.edu/pub/ppp/mac/
  4430. ftp://sumex-aim.stanford.edu/info-mac/card/check-gestalt-for-xcmd.hqx
  4431. ftp://sumex-aim.stanford.edu/info-mac/card/gestalt-321.hqx
  4432. ftp://sumex-aim.stanford.edu/info-mac/card/information-10-xfcn-demo.hqx
  4433. ftp://sumex-aim.stanford.edu/info-mac/cfg/gestalt-300.hqx
  4434. ftp://sumex-aim.stanford.edu/info-mac/cfg/tattle-tech*.hqx
  4435. ftp://sumex-aim.stanford.edu/info-mac/cfg/who-am-i-099.hqx
  4436. ftp://sumex-aim.stanford.edu/info-mac/dev/a4d/ext/gestalt-ext.hqx
  4437. ftp://sumex-aim.stanford.edu/info-mac/dev/a4d/ext/gestalt-pro-112.hqx
  4438. ftp://sumex-aim.stanford.edu/info-mac/dev/gestalt-value-lib.hqx
  4439. ftp://sumex-aim.stanford.edu/info-mac/dev/info/gestalt-selectors-XX.hqx
  4440. ftp://sumex-aim.stanford.edu/info-mac/gui/mac-identifier-111.hqx
  4441. http://bambam.cchem.berkeley.edu/~schrier/mhz.html
  4442. http://www.astro.nwu.edu/lentz/mac/faqs/source/gestalt.html
  4443.  
  4444. Definitions and Format
  4445. ======================
  4446. This chapter explains where the word 'Gestalt' comes from, a few things
  4447. are defined and it explains how each selector code entry looks like.
  4448.  
  4449. Use in Language
  4450. ---------------
  4451.  
  4452. WEBSTER'S DICTIONARY (?)
  4453. ge.stalt \g<e>-'s(h)t<a:>lt, -'s(h)t<o.>lt\ n, pl ge.stalt.en
  4454. \-<\e>n\ or gestalts (1922)
  4455.   [G, lit., shape, form]
  4456.   :a structure, configuration, or pattern of physical, biological, or
  4457.   psychological phenomena so integrated as to constitute a functional unit
  4458.   with properties not derivable by summation of its parts.
  4459.  
  4460. GERMAN-DUTCH DICTIONARY
  4461. Gestalt w [-en]
  4462.   stature, figure, form; Ritter von der Traurigen -, knight of the
  4463.   sorrowful figure.
  4464.  
  4465. Definitions
  4466. -----------
  4467.  
  4468. APPLE SOFTWARE
  4469. This category includes all selectors installed by software published by
  4470. Apple Computer, Inc.
  4471. Inside Macintosh says this about them:
  4472.      "Apple reserves for its own use all four-character sequences
  4473.       consisting solely of lowercase letters and non alphabetic ASCII
  4474.       characters".
  4475. It includes all selectors of the next two categories:
  4476.       
  4477. APPLE SYSTEM SOFTWARE
  4478. This category includes all selectors installed by System Software from
  4479. Apple Computer, Inc.
  4480.  
  4481. APPLE ADDITIONAL SOFTWARE
  4482. These are selectors installed by additional, non-system, software from
  4483. Apple Computer, Inc.
  4484.  
  4485. THIRD PARTIES SOFTWARE
  4486. These are selectors installed by software from parties other than Apple
  4487. Computer, Inc.
  4488. Inside Macintosh says about these:
  4489.      "If you have registered a creator string with Apple, you are
  4490.       strongly encouraged to use that sequence as your selector code".
  4491. This type of selectors is included in this list with the motto "If you
  4492. don't know they are there, you can't do anything with them".
  4493. Especially the Third Party selectors may change with every new release and
  4494. are therefore only listed in the 'known selectors' part when the author has
  4495. described the structure in the documentation or by email to me. These
  4496. selectors don't have a high priority but when possible I want to know at
  4497. least which software installs it to exclude it as a possible
  4498. "Apple selector".
  4499. Some people at Apple also differentiate between commercial developers and
  4500. others, as being "third" and "fourth" parties respectively. But with this
  4501. list this is not the case.
  4502.  
  4503. Format Selector Entry
  4504. ---------------------
  4505. Format used to display information about each selector:
  4506.  
  4507. selector_code (Software_name & type [since_version], by company/author)
  4508.      constant_name
  4509.      description
  4510.  
  4511.      const
  4512.      declaration; {remark *ref.number_to_source}
  4513.  
  4514.      NOTE and/or WARNING:
  4515.  
  4516. Where the type is one of:
  4517. app  application (APPL)
  4518. cp   control panel (cdev)
  4519. ext  extension (INIT/appe/RDEV etc.)
  4520.  
  4521. Example:
  4522.  
  4523. COLA (Sugarwater ext [1.0] by John Sculley)
  4524.      gestaltSugarwaterVersion
  4525.      Returns version of Sugarwater as NumVersion.
  4526.  
  4527.      const
  4528.      gestaltSugarwaterVersion = 'COLA'; *AB01
  4529.  
  4530.      WARNING: This example is fictitious.
  4531.  
  4532.      NOTE:
  4533.      Sugarwater? See the book 'West of Eden, The End of Innocence at
  4534.      Apple' by Frank Rose.
  4535.  
  4536. Most selectors are listed as four characters, if there are only two or
  4537. three characters displayed the remainder are spaces (or it's a typo!).
  4538. Diacritical characters are shown in the most logical normal character and
  4539. at the end of the entry a note is included about which key-combination to
  4540. press with a normal International system and US keyboard layout to get the
  4541. required diacritical character and also listed is its ASCII code.
  4542. When 'INF' is at the end of the first line it means it is an informational
  4543. selector, all others are environmental selectors.
  4544. The source reference number may also be used in other places than indicated
  4545. above. It then applies to other parts of the entry or to the whole entry.
  4546. A single question mark indicates an uncertainty regarding the information
  4547. in front of the question mark. Three question marks indicate complete
  4548. absence of the information.
  4549. Some symbolic names may not originate from official publications.
  4550.  
  4551. Symbolic Names Suffixes
  4552. -----------------------
  4553. The last characters of the symbolic names form a suffix which indicates
  4554. the type of the returned value. Below is a table which lists the different
  4555. types of suffix and their meaning.
  4556.  
  4557. ===========================================================================
  4558. Symbolic Names Suffixes
  4559. ===========================================================================
  4560. Suffix                   Meaning
  4561. ---------------------------------------------------------------------------
  4562. Addr                     Value is an address, i.e. to the base address of
  4563.                          a memory-mapped device or to a function in
  4564.                          memory.
  4565. Attr                     Value is a range of 32 bits (0 is the least
  4566.                          significant bit), must compare with list of
  4567.                          constants and use BitTst or similair. Sometimes
  4568.                          it is a bitmask, then use BitAnd.
  4569. Count                    Value is a number indicating how many of the
  4570.                          indicated type exist.
  4571. Icon                     Value is the resource ID of an icon.
  4572. Size                     Value is a size, usually in bytes.
  4573. Table                    Value is the base address of a table.
  4574. Type                     Value is an index to map to a version or name.
  4575. Version                  Value is a version number. See the section
  4576.                          'Format Version Numbers' below, for a list of
  4577.                          different formats of version numbers.
  4578. <none>                   If there is no suffix like the ones above, the
  4579.                          presence of the selector only implies the
  4580.                          software which installed the selector is present.
  4581.                          The returned value is then private to the
  4582.                          installee.
  4583. ---------------------------------------------------------------------------
  4584.  
  4585. Format Version Numbers
  4586. ----------------------
  4587. BCD (Binary Coded Decimal)
  4588.      $0x0402 means 4.0.2.
  4589.  
  4590. INTEGER
  4591.      The decimal representation of the returned value in the low-byte is
  4592.      the version.
  4593.  
  4594. Double BCD (my own fantasy name..., RR)
  4595.      $00010108 means 1.1.8.
  4596.  
  4597. NumVersion
  4598.      The format of the LongInt response can be coerced into type NumVersion,
  4599.      which is the same format as used for the 'vers' resource type.
  4600.  
  4601.      type
  4602.       NumVersion = packed record
  4603.        case INTEGER of
  4604.         0: (majorRev: SignedByte;  {1st part of version number in BCD}
  4605.             minorRev: 0..9;        {2nd part is 1 nibble in BCD}
  4606.             bugFixRev: 0..9;       {3rd part is 1 nibble in BCD}
  4607.             stage: SignedByte;     {stage code: dev, alpha, beta, final}
  4608.             nonRelRev: SignedByte);{revision level of non-released version}
  4609.         1: (version: LONGINT);     {to use all 4 fields at one time}
  4610.        end;
  4611.  
  4612.      stage is one of: $20 = development
  4613.                       $40 = alpha
  4614.                       $60 = beta
  4615.                       $80 = final
  4616.  
  4617. About this list
  4618. ===============
  4619. The Gestalt Manager is a collection of system routines which allows
  4620. applications to test for the availability of software and hardware. Because
  4621. of the increasing number of different software and hardware configurations,
  4622. this is getting an important issue. It probably already is and known by the
  4623. term 'compatability'.
  4624. The Gestalt function allows applications to obtain information about the
  4625. current configuration. Selectors are used to refer to certain information.
  4626. A selector is of type OSType (a four byte value) and usually contain four
  4627. ASCII characters. For example: the selector 'sysv' causes the version of
  4628. the current system is returned. Other functions, NewGestalt and
  4629. ReplaceGestalt, allow programmers to install their own Gestalt selectors.
  4630. Programmers need to know these selectors beforehand to be able to request
  4631. and interpret the value returned by the Gestalt function.
  4632. See for more detailed information on how to use the Gestalt Manager
  4633. routines Inside Macintosh part VI (old series). The new Inside
  4634. Macintosh: Operating System Utilities replaces IM VI.
  4635. The Driver Gestalt calls (status calls to device drivers) are not covered
  4636. by this list.
  4637. When you already have one or more of the new IM issues you may be a bit
  4638. disappointed. I was, because of the very minimal information provided
  4639. regarding the availability of the system routines. Of most routines you
  4640. will find no information on how to test their availability.
  4641.  
  4642. This Gestalt Selectors List intends to list all known selectors, but in
  4643. reality this means it lists all selectors known to the editor.
  4644. I would like to see this list to be a combined effort by different persons
  4645. who have together access to a wide area of information.
  4646. This list may contain (educated?) guesses and perhaps even false
  4647. information, so no guarantee is made about the contents.
  4648. You may use this information freely (see Legal Stuff section below), but
  4649. when you find information not included with this list; please tell me. If
  4650. you have additions, corrections, comments, suggestions, news about
  4651. available software, etc., mail it me. Please, also mention the source you
  4652. used, if any.
  4653. You can send contributions, remarks, etc. to this email address:
  4654.     gestalt-selectors-list@bio.vu.nl
  4655. If you want to remain anonymous, please mention this and it will be taken
  4656. care of.
  4657. I don't have all the documentation or knowledge and I don't want to, and
  4658. I'am certainly not Mr.Gestalt.
  4659.  
  4660. Availability
  4661. ------------
  4662. If you downloaded this list from CompuServe, a BBS, or any other service,
  4663. you will notice some strange things like 'FTP-sites' which have to do
  4664. with the fact that this list originates from INTERNET.
  4665. You can access the mail archive server also from CompuServe, AOL and
  4666. AppleLink. Contact your network provider for information on how to send
  4667. email to an INTERNET site.
  4668.  
  4669. This list is available in the following ways:
  4670.  
  4671. **INTERNET**
  4672.  
  4673. USENET newsgroup comp.sys.mac.programmer (c.s.m.p.)
  4674. This list has become too large to post to c.s.m.p., so starting from
  4675. version 2.2 this list is no longer posted there. Instead an announcement
  4676. will be posted informing were you can find the latest version.
  4677.  
  4678. FTP-SITE
  4679. sumex-aim.stanford.edu [36.44.0.6]
  4680. Every minor and major version is submitted to the info-mac archives:
  4681.  
  4682. ftp://sumex-aim.stanford.edu/info-mac/dev/info/gestalt-selectors-XX.hqx
  4683.  
  4684. It is also available on its mirror sites.
  4685. Contact: Info-Mac Moderator (info-mac-request@sumex-aim.stanford.edu)
  4686.  
  4687. FINGER
  4688. Using Finger to obtain the latest version is no longer possible.
  4689.  
  4690. WWW
  4691. The GSL is also available for World Wide Web users together with other
  4692. Macintosh FAQs at:
  4693.  
  4694. http://www.astro.nwu.edu/lentz/mac/faqs/source/gestalt.html
  4695.  
  4696. Contact: Robert Lentz (lentz@rossi.astro.nwu.edu)
  4697.  
  4698. **COMPUSERVE**
  4699.  
  4700. Starting with version 2.0 this list is uploaded to the Macintosh Developers
  4701. Forum (MACDEV). Only new minor and major versions will be uploaded once. It
  4702. then appears in the Tools/Debuggers (13) section.
  4703.  
  4704. **AMERICA ONLINE (AOL)**
  4705.  
  4706. The GSL doesn't have it's permanent place on AOL but is uploaded from
  4707. Internet. Do a file search (keyword: FileSearch) to find it.
  4708.  
  4709. Contact: Jonathan Kleid (SonOfaBitS@aol.com)
  4710.  
  4711. **GENERAL**
  4712.  
  4713. CD-ROM or BBS
  4714. Because of permissions I granted you may get this list from a CD-ROM or via
  4715. a BBS from Internet, CompuServe or a CD-ROM. If you do, and the release was
  4716. more than two months ago, there is probably already a newer version.
  4717.  
  4718. MAILING LIST
  4719. Every person on the mailing list automatically receives an update by email
  4720. whenever there are some changes. If you want to subscribe or unsubscribe to
  4721. this mailing list you need to send an email to this address:
  4722.      gestalt-selectors-list-request@bio.vu.nl
  4723. Then put in the subject line either 'subscribe' or 'unsubscribe'.
  4724.  
  4725. The mailing list is moderated, which means everybody can email to:
  4726.     gestalt-selectors-list@bio.vu.nl
  4727. But only after approval of the moderator the other subscribers will receive
  4728. your posting. This guarantees that no confidential contribution is
  4729. distributed before the moderator sees it.
  4730. If mail to you bounces four times you're automatically unsubscribed.
  4731.  
  4732. This service is only possible to those who have an account on Internet or
  4733. any other network reachable from Internet (CompuServe, AOL, AppleLink,
  4734. Fidonet). I can not provide mailing of printed versions or on disk by
  4735. normal surface mail.
  4736.  
  4737. MAIL ARCHIVE SERVER
  4738. You can retrieve the latest versions of this list and other software
  4739. by sending an email to this address:
  4740.      gestalt-selectors-list-request@bio.vu.nl
  4741. In the subject line you need to enter 'archive' and then put one command
  4742. behind it or only 'archive' in the subject line with one of more commands
  4743. in the body of your email preceded by the keyword 'archive'. These commands
  4744. can be:
  4745.      help             to get some help on using the archive server
  4746.      ls <dir>         to list the contents of the specified directory
  4747.      get <dir>/<file> to have the specified file sent to you by email.
  4748. To obtain the abstracts of all files available you can use this command:
  4749.      archive get ABSTRACTS
  4750.  
  4751. Your actions may be logged.
  4752.  
  4753. PRINTED
  4754. If you want this list printed on paper you may want to try a feature
  4755. included with the LaserWriter 8 software. With it you can print four
  4756. pages on a single sheet of paper. When you set the page breaks correct,
  4757. this produces a very neat, little booklet.
  4758.  
  4759. Acknowledgements
  4760. ----------------
  4761. I want to thank the following persons for their contribution to this list:
  4762.  
  4763. ===========================================================================
  4764. Name                                       Internet Email Address
  4765. ---------------------------------------------------------------------------
  4766. Anonymous contributor(s)                   anonymous@secret.cia
  4767. Lonnie R. Abelbeck                         abelbeck@dev.abelbeck.com
  4768. Daniel Azuma                               dazuma@cco.caltech.edu
  4769. J.D. Sterling Babcock                      jdsb@ee.duke.edu
  4770. John Baxter                                jwbaxter@pt.olympus.net
  4771. Martin Bestmann                     kruemel@theorie3.physik.uni-erlangen.de
  4772. Mason L. Bliss                             mason@cis.umassd.edu
  4773. Scott Bronson                              urge@mcl.mcl.ucsb.edu
  4774. Jim Browne                                 jbrowne@ncsa.uiuc.edu
  4775. Richard Buckle                             richardb@cocytus.demon.co.uk
  4776. Ivan M Cavero Belaunde                     ivanski@world.std.com
  4777. John Champion                              denali@metronet.com
  4778. Mike Cohen                                 isis@netcom.com
  4779. Marc Cooperman                             coopem@panix.com
  4780. Mark Dawson                                marc@apple.com
  4781. Lawrence D'Oliveiro                        ldo@waikato.ac.nz
  4782. Dave Falkenburg, Apple Computer Inc.       falken@apple.com
  4783. Rick Gansler                               gansler@boardwalk.tiac.net
  4784. M. David Greenspon                         gremicf@yalevm.ycc.yale.edu
  4785. C.K. Haun                                  haun@apple.com
  4786. Michael Hecht                              Michael_Hecht@mac.sas.com
  4787. Robert Hess                                robert_hess@macweek.ziff.com
  4788. Bill Hofmann                               wdh@netcom.com
  4789. Mark B. Johnson                            mjohnson@apple.com
  4790. David B. Lamkins                           dblamkins@aol.com
  4791. Robert Lentz                               lentz@rossi.astro.nwu.edu
  4792. David Lewis                                lewis@netcom.com
  4793. Spencer Low                                spencerl@crl.com
  4794. John Mancino, Decision Maker's Software    mancino@decismkr.com
  4795. Roland Mansson                             roland.mansson@ldc.lu.se
  4796. Matsubayashi Kohji                         matubays@ics.es.osaka-u.ac.jp
  4797. Duane Murphy, Novell Inc.                  damurphy@wc.novell.com
  4798. Mark Nagata                                nagata@kurims.kyoto-u.ac.jp
  4799. Fabrizio Oddone                            gspnx@di.unito.it
  4800. Carl R. Osterwald                          cro@br213mail.nrel.gov
  4801. Marco Piovanelli                           piovanel@ghost.dsi.unimi.it
  4802. Kees Pols                                  kpols@bio.vu.nl
  4803. Francois Pottier                           pottier@clipper.ens.fr
  4804. Jon Pugh                                   jonpugh@netcom.com
  4805. Quinn                                      quinn@cs.uwa.edu.au
  4806. Dave Radcliffe, Apple Computer Inc.        radcliff@apple.com
  4807. Thomas Reed                                reed@telesphere.wustl.edu
  4808. Pete Resnick                               resnick@cogsci.uiuc.edu
  4809. Paul Reznick                               PRzeznik@aol.com
  4810. Alex Rosenberg, Apple Computer Inc.        alexr@apple.com
  4811. Leonard Rosenthol                          leonardr@netcom.com
  4812. Jeremy Roussak                             jeremyr@dcs.qmw.ac.uk
  4813. Ray Sanders                                72511.232@CompuServe.COM
  4814. Eric Schlegel, Microsoft Corporation       ericsc@microsoft.com
  4815. Marc Schrier                               schrier@garnet.berkeley.edu
  4816. Mark Simmons                               72511.256@CompuServe.COM
  4817. Brian Stern                                Jaeger@fquest.com
  4818. Zalman Stern                               zalman@adobe.com
  4819. Tim Swihart                                tim_swihart@quickmail.apple.com
  4820. Ilan Szekely                               ILANS@ds.huji.ac.il
  4821. Victor Tan                                 victort@extro.ucc.su.oz.au
  4822. Rodrigo Torres, Berkeley Systems           brklysystm@aol.com
  4823. Hans Verbrugge                             hverbrug@inter.nl.net
  4824. John Watte                                 d88-jwa@nada.kth.se
  4825. Jonathan Wilson                            toast@diss.hyphen.com
  4826. Chris Wysocki                              wysocki@netcom.com
  4827. ---------------------------------------------------------------------------
  4828.  
  4829. And my colleagues at the Computer Department of the Biology Faculty of the
  4830. Vrije University in Amsterdam, The Netherlands for their help and support.
  4831. Also special thanks to Marco Piovanelli for his support and comments about
  4832. preliminary versions and updates.
  4833.  
  4834. The persons mentioned above provided information used in this list. They
  4835. did this on personal title, NOT on behalf of their employer, unless
  4836. explicitly stated otherwise.
  4837. I assume information you mail to me about Gestalt selectors may be used in
  4838. this list. Information made available to the general public (e.g. a posting
  4839. to a USENET newsgroup) is also included and the persons name added to this
  4840. section (and to the mailing list).
  4841. I will mail you back to thank you and include the parts from the list which
  4842. were changed, according to the information you provided, to let you check
  4843. them.
  4844.  
  4845. Legal Stuff
  4846. -----------
  4847. (c) 1992-1995, Rene G.A. Ros
  4848.  
  4849. NOTICE OF LIABILITY
  4850. The information in this list is distributed on an "AS IS" basis, without
  4851. warranty. While every precaution has been taken in the preparation of this
  4852. list, neither the editor nor any contributor shall have any liability to
  4853. any person or entity with respect to any liability, loss, or damage caused
  4854. or alleged to be caused directly or indirectly by the information contained
  4855. in this list or by the computer software and hardware products described
  4856. herein.
  4857.  
  4858. TRADEMARKS
  4859. Throughout this list trademarked names are used. Rather than put a
  4860. trademark symbol in every occurrence of a trademarked name, I state I am
  4861. using the names only in an editorial fashion and to the benefit of the
  4862. trademark owner with no intention of infringement of the trademark.
  4863.  
  4864. DISTRIBUTION
  4865. The information in this list may be used freely. When you use the
  4866. information in this list for COMMERCIAL purposes, you may consider sending
  4867. the editor a donation. You are not allowed to distribute this list outside
  4868. any computer network (especially printed, on disk or CD-ROM) unless you
  4869. have contacted the editor and received permission to do so. This is also to
  4870. ensure you have the latest version. The updates may not be distributed,
  4871. these are ONLY for the persons on the mailing list.
  4872. You are not allowed to use excerpts of this list with your documentation or,
  4873. in any other way, without prior permission of the editor. You will receive
  4874. permission to include excerpts when you are subscribed to the mailing list.
  4875. In any case you should give the GSL proper credit in your software or in
  4876. the documentation.
  4877.  
  4878. Permission for distribution of the full list is granted to:
  4879. Aladdin Systems                      (InstallerMaker software)
  4880. Arizona Macintosh Users Group        (BBS in a BOX CD-ROM)
  4881. Celestin Company                     (Apprentice CD-ROM)
  4882. Club Macintosh de Quebec
  4883. CP Shareware
  4884. IDG Communications Nederland         (MacWorld CD-ROM)
  4885. Pacific HiTech, Inc.                 (Info-Mac CD-ROM)
  4886. Quantum Technologies, Inc.           (The Right Stuffed CD-ROM)
  4887.  
  4888. You are not allowed to distribute modified versions of this list,
  4889. including, but not limited to, deleting, adding or moving text or adding
  4890. non-text parts. Distribution in any electronical format except a normal
  4891. (or compressed) text file is not allowed without permission.
  4892. You are not allowed to redistribute it with any other name than
  4893. 'gestalt-selectors-XX.YYY' (where XX is the version number and YYY the
  4894. suffix to indicate compression etc.) unless because of technical reasons.
  4895. In such case a name should be chosen which resambles it as closely as
  4896. possible to avoid confusion.
  4897.  
  4898. Editors' Address
  4899. ----------------
  4900. Rene G.A. Ros
  4901. student Computer Science (fulltime),
  4902.        Hogeschool van Amsterdam (Institute of Technology)
  4903. member Computer Department (parttime),
  4904.        Biology Faculty, Vrije University Amsterdam
  4905. contract programmer Pascal and C, also 4th Dimension and other data-bases
  4906.  
  4907. Internet  : rgaros@bio.vu.nl (preferred)
  4908.             rgaros@nikhefk.nikhef.nl
  4909.             rgaros@htsa.hva.nl
  4910.             rgaros@dds.hacktic.nl
  4911. CompuServe: >INTERNET: rgaros@bio.vu.nl
  4912.             100112,1363
  4913.  
  4914. Mailing list:
  4915. Internet    contributions:
  4916.             gestalt-selectors-list@bio.vu.nl
  4917.  
  4918.             to subscribe/unsubscribe and for the archive server:
  4919.             gestalt-selectors-list-request@bio.vu.nl
  4920.  
  4921. CompuServe  contributions:
  4922.             >INTERNET: gestalt-selectors-list@bio.vu.nl
  4923.  
  4924.             to subscribe/unsubscribe and for the archive server:
  4925.             >INTERNET: gestalt-selectors-list-request@bio.vu.nl
  4926.  
  4927. Please contact me at the INTERNET address. I read my mail there almost
  4928. daily, while I log on to CompuServe only once or twice a month.
  4929.